diff --git a/.gitignore b/.gitignore index 5921cee34c56b1b8d791b9366c01489d01d325f1..7b720e0c4707733137d96398c435e25d708aa2c7 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ *.tlog *.lastbuildstate *.ilk +*.VC.db ARM "Generated Files" Bin diff --git a/Kits/ATGTK/ControllerHelp.cpp b/Kits/ATGTK/ControllerHelp.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f5b9961fa56f0ca12706f5305d4bac52a81aa49a --- /dev/null +++ b/Kits/ATGTK/ControllerHelp.cpp @@ -0,0 +1,854 @@ +//-------------------------------------------------------------------------------------- +// File: ControllerHelp.cpp +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright (c) Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------------- + +#include "pch.h" +#include "ControllerHelp.h" +#include "DDSTextureLoader.h" +#include "SimpleMath.h" + +#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) +#include "FindMedia.h" +#endif + +#include + +using namespace DirectX; +using namespace SimpleMath; + +namespace +{ + enum HelpFonts + { + SEGOE_UI_18PT = 0, + SEGOE_UI_22PT, + SEGOE_UI_36PT, + }; + + enum class CalloutType : uint16_t + { + NO_CONTAINER, + LINE_TO_ANCHOR + }; + + enum Alignment + { + TO_LEFT = 1, + TO_RIGHT = 2, + HORIZONTAL_CENTER = TO_LEFT | TO_RIGHT, + ABOVE = 4, + BELOW = 8, + VERTICAL_CENTER = ABOVE | BELOW, + FULL_CENTER = TO_LEFT | TO_RIGHT | ABOVE | BELOW + }; + + // Anchor points for each of the callout boxes. + const Vector2 ANCHOR_TITLE = { 960, 92 }; + const Vector2 ANCHOR_DESCRIPTION = { 960, 990 }; + const Vector2 ANCHOR_LEFT_STICK = { 513, 468 }; + const Vector2 ANCHOR_RIGHT_STICK = { 1405, 599 }; + const Vector2 ANCHOR_LEFT_STICK_CLICK = { 513, 526 }; + const Vector2 ANCHOR_RIGHT_STICK_CLICK = { 1405, 657 }; + const Vector2 ANCHOR_DPAD_ALL = { 513, 605 }; + const Vector2 ANCHOR_RIGHT_SHOULDER = { 1405, 230 }; + const Vector2 ANCHOR_RIGHT_TRIGGER = { 1405, 300 }; + const Vector2 ANCHOR_LEFT_SHOULDER = { 513, 230 }; + const Vector2 ANCHOR_LEFT_TRIGGER = { 513, 300 }; + const Vector2 ANCHOR_A_BUTTON = { 1405, 538 }; + const Vector2 ANCHOR_B_BUTTON = { 1405, 488 }; + const Vector2 ANCHOR_X_BUTTON = { 1405, 389 }; + const Vector2 ANCHOR_Y_BUTTON = { 1405, 440 }; + const Vector2 ANCHOR_MENU = { 1405, 785 }; + const Vector2 ANCHOR_VIEW = { 513, 785 }; + + // Anchor points for the mid-point of each of the callout balloons + const Vector2 MIDPOINT_LINE_LEFT_STICK_CLICK = { 774, 526 }; + const Vector2 MIDPOINT_LINE_RIGHT_STICK_CLICK = { 1054, 657 }; + const Vector2 MIDPOINT_LINE_RIGHT_SHOULDER = { 1097, 230 }; + const Vector2 MIDPOINT_LINE_RIGHT_TRIGGER = { 1171, 300 }; + const Vector2 MIDPOINT_LINE_LEFT_SHOULDER = { 815, 230 }; + const Vector2 MIDPOINT_LINE_LEFT_TRIGGER = { 751, 300 }; + const Vector2 MIDPOINT_LINE_X_BUTTON = { 1097, 389 }; + const Vector2 MIDPOINT_LINE_MENU = { 1012, 785 }; + const Vector2 MIDPOINT_LINE_VIEW = { 907, 785 }; + + // Anchor points for each of the callout balloons (what each callout is referring to). + const Vector2 CALLOUT_LINE_LEFT_STICK = { 740, 468 }; + const Vector2 CALLOUT_LINE_RIGHT_STICK = { 1091, 599 }; + const Vector2 CALLOUT_LINE_LEFT_STICK_CLICK = { 774, 487 }; + const Vector2 CALLOUT_LINE_RIGHT_STICK_CLICK = { 1054, 599 }; + const Vector2 CALLOUT_LINE_DPAD_ALL = { 815, 605 }; + const Vector2 CALLOUT_LINE_RIGHT_SHOULDER = { 1097, 342 }; + const Vector2 CALLOUT_LINE_RIGHT_TRIGGER = { 1171, 336 }; + const Vector2 CALLOUT_LINE_LEFT_SHOULDER = { 815, 342 }; + const Vector2 CALLOUT_LINE_LEFT_TRIGGER = { 751, 336 }; + const Vector2 CALLOUT_LINE_A_BUTTON = { 1168, 538 }; + const Vector2 CALLOUT_LINE_B_BUTTON = { 1215, 488 }; + const Vector2 CALLOUT_LINE_X_BUTTON = { 1097, 465 }; + const Vector2 CALLOUT_LINE_Y_BUTTON = { 1168, 440 }; + const Vector2 CALLOUT_LINE_MENU = { 1012, 503 }; + const Vector2 CALLOUT_LINE_VIEW = { 907, 503 }; + + // Description Text for each button + const wchar_t* LABEL_TEXT_LEFT_STICK = L"LEFT THUMBSTICK"; + const wchar_t* LABEL_TEXT_RIGHT_STICK = L"RIGHT THUMBSTICK"; + const wchar_t* LABEL_TEXT_LEFT_STICK_CLICK = L"(click) LEFT THUMBSTICK"; + const wchar_t* LABEL_TEXT_RIGHT_STICK_CLICK = L"(click) RIGHT THUMBSTICK"; + const wchar_t* PRE_TEXT_DPAD_UP = L"UP - "; + const wchar_t* PRE_TEXT_DPAD_DOWN = L"DOWN - "; + const wchar_t* PRE_TEXT_DPAD_LEFT = L"LEFT - "; + const wchar_t* PRE_TEXT_DPAD_RIGHT = L"RIGHT - "; + const wchar_t* LABEL_TEXT_DPAD_ALL = L"DPAD"; + const wchar_t* LABEL_TEXT_RIGHT_SHOULDER = L"RIGHT BUMPER"; + const wchar_t* LABEL_TEXT_RIGHT_TRIGGER = L"RIGHT TRIGGER"; + const wchar_t* LABEL_TEXT_LEFT_SHOULDER = L"LEFT BUMPER"; + const wchar_t* LABEL_TEXT_LEFT_TRIGGER = L"LEFT TRIGGER"; + const wchar_t* LABEL_TEXT_LINE_MENU = L"MENU"; + const wchar_t* LABEL_TEXT_LINE_VIEW = L"VIEW"; + const wchar_t* PRE_TEXT_A_BUTTON = L"A "; + const wchar_t* PRE_TEXT_B_BUTTON = L"B "; + const wchar_t* PRE_TEXT_X_BUTTON = L"X "; + const wchar_t* PRE_TEXT_Y_BUTTON = L"Y "; + + const DirectX::SimpleMath::Vector4 HELP_TITLE_COLOR = { 0.478431374f, 0.478431374f, 0.478431374f, 1.f }; + const DirectX::SimpleMath::Vector4 HELP_DESCRIPTION_COLOR = { 0.478431374f, 0.478431374f, 0.478431374f, 1.f }; + const DirectX::SimpleMath::Vector4 HELP_CALLOUT_COLOR = { 0.980392158f, 0.980392158f, 0.980392158f, 1.f }; + const DirectX::SimpleMath::Vector4 HELP_CALLOUT_LABEL_COLOR = { 0.478431374f, 0.478431374f, 0.478431374f, 1.f }; + const DirectX::SimpleMath::Vector4 PRE_TEXT_A_BUTTON_COLOR = { 0.2f, 0.6f, 0.09f, 1.f }; + const DirectX::SimpleMath::Vector4 PRE_TEXT_B_BUTTON_COLOR = { 0.9f, 0.1f, 0.14f, 1.f }; + const DirectX::SimpleMath::Vector4 PRE_TEXT_X_BUTTON_COLOR = { 0.f, 0.5f, 0.7f, 1.f }; + const DirectX::SimpleMath::Vector4 PRE_TEXT_Y_BUTTON_COLOR = { 0.9f, 0.8f, 0.f, 1.f }; +}; + +struct ATG::Help::CalloutBox +{ + ATG::HelpID helpID; // The HelpID for the callout + CalloutType type; // The type of callout to render. + uint16_t align; // Alignment relative to anchor point. + HelpFonts font; // font to render text in. + const wchar_t * labelPre; // Label pre-text + const wchar_t * label; // Label text + Vector4 labelForeground; // Label Foreground + Vector4 foreground; // Foreground color + Vector2 anchor; // the anchor point for this callout. + const wchar_t * text; // text for the callout. + Vector2 calloutLine; // position to draw the line to on the callout from the anchor (if shown). + Vector2 midpointLine; // the midpoint of the callout and anchor lines + + static void Create(_Out_ CalloutBox& dest, _In_opt_z_ const wchar_t* text, ATG::HelpID helpID, bool linearColors) + { + size_t j = 0; + for (; j < ATG::HelpID::MAX_COUNT; ++j) + { + if (s_CalloutTemplates[j].helpID == helpID) + { + dest = s_CalloutTemplates[j]; + if (linearColors) + { + dest.labelForeground = XMColorSRGBToRGB(s_CalloutTemplates[j].labelForeground); + dest.foreground = XMColorSRGBToRGB(s_CalloutTemplates[j].foreground); + } + break; + } + } + if (j >= ATG::HelpID::MAX_COUNT) + { + throw std::exception("CalloutBox::Create can't find help ID"); + } + + dest.text = text; + } + + void Render(const ATG::Help& help, SpriteBatch* batch) + { + // add the callout circle to the spritebatch. + if (type == CalloutType::LINE_TO_ANCHOR) + { + // callout circle is 12x12 so -6 from x and y to get top left coordinates + batch->Draw(help.m_circleTex.Get(), Vector2(calloutLine.x - 6, calloutLine.y - 6)); + } + + SpriteFont* spriteFont = help.m_spriteFonts[font].get(); + + // Draw callout text + LONG anchorXOffset = 20; // space between callout line and label/text + LONG preLabelXOffset = 6; // space between a pre-label and text + + if (labelPre) + { + // Some labels have a pre-text before the text such as the A,B,X,Y, and DPAD buttons + Vector2 textSize = spriteFont->MeasureString(text); + Vector2 labelPreSize = spriteFont->MeasureString(labelPre); + + if (Alignment::TO_RIGHT == align) + { + // draw pre-text + spriteFont->DrawString(batch, labelPre, Vector2((anchor.x - (anchorXOffset + labelPreSize.x + textSize.x + preLabelXOffset)), + (anchor.y - (labelPreSize.y / 2))), labelForeground); + // draw text + spriteFont->DrawString(batch, text, Vector2((anchor.x - anchorXOffset) - (textSize.x), + (anchor.y - (textSize.y / 2))), foreground); + } + else if (Alignment::TO_LEFT == align) + { + // draw pre-text + spriteFont->DrawString(batch, labelPre, Vector2((anchor.x + anchorXOffset), + (anchor.y - (labelPreSize.y / 2))), labelForeground); + + // draw text + spriteFont->DrawString(batch, text, Vector2((anchor.x + anchorXOffset) + (labelPreSize.x + preLabelXOffset), + (anchor.y - (textSize.y / 2))), foreground); + } + } + else // no pre-text + { + if (Alignment::TO_RIGHT == align) // align to right + { + if (label) + { + Vector2 labelSize = help.m_spriteFonts[font]->MeasureString(label); + spriteFont->DrawString(batch, label, Vector2((anchor.x - anchorXOffset) - labelSize.x, + (anchor.y - (labelSize.y / 2))), labelForeground); + } + + if (text) + { + Vector2 textSize = help.m_spriteFonts[font]->MeasureString(text); + spriteFont->DrawString(batch, text, Vector2((anchor.x - anchorXOffset) - textSize.x, + ((anchor.y) + (textSize.y / 3))), foreground); + } + } + else if (Alignment::TO_LEFT == align) // align to left + { + if (label) + { + Vector2 labelSize = help.m_spriteFonts[font]->MeasureString(label); + spriteFont->DrawString(batch, label, Vector2((anchor.x + anchorXOffset), + (anchor.y - (labelSize.y / 2))), labelForeground); + } + + if (text) + { + Vector2 textSize = help.m_spriteFonts[font]->MeasureString(text); + spriteFont->DrawString(batch, text, Vector2((anchor.x + anchorXOffset), + ((anchor.y) + (textSize.y / 3))), foreground); + } + } + else if (Alignment::FULL_CENTER == align) // center + { + if (text) + { + Vector2 textSize = help.m_spriteFonts[font]->MeasureString(text); + spriteFont->DrawString(batch, text, Vector2((anchor.x - (textSize.x / 2)), + ((anchor.y) - (textSize.y / 2))), foreground); + } + } + } + } + + void Render(PrimitiveBatch* batch) + { + // draw callout lines + if (type == CalloutType::LINE_TO_ANCHOR) + { + XMVECTOR color = labelForeground; + + if (midpointLine.x > 0) // two lines + { + // callout to midpoint + batch->DrawLine(VertexPositionColor(Vector2(anchor.x, anchor.y), color), + VertexPositionColor(Vector2(midpointLine.x, midpointLine.y), color)); + + // midpoint to anchor + batch->DrawLine( + VertexPositionColor(Vector2(midpointLine.x, midpointLine.y), color), + VertexPositionColor(Vector2(calloutLine.x, calloutLine.y), color)); + } + else + { + // single line. no midpoint. callout to anchor. + batch->DrawLine(VertexPositionColor(Vector2(anchor.x, anchor.y), color), + VertexPositionColor(Vector2(calloutLine.x, calloutLine.y), color)); + } + } + } + +private: + static const CalloutBox s_CalloutTemplates[]; +}; + +const ATG::Help::CalloutBox ATG::Help::CalloutBox::s_CalloutTemplates[] = +{ + // TITLE_TEXT + { + ATG::HelpID::TITLE_TEXT, + CalloutType::NO_CONTAINER, + FULL_CENTER, + SEGOE_UI_36PT, + nullptr, + nullptr, + HELP_CALLOUT_LABEL_COLOR, + HELP_TITLE_COLOR, + ANCHOR_TITLE, + nullptr, + ANCHOR_TITLE, + { 0, 0 } + }, + // DESCRIPTION_TEXT + { + ATG::HelpID::DESCRIPTION_TEXT, + CalloutType::NO_CONTAINER, + FULL_CENTER, + SEGOE_UI_22PT, + nullptr, + nullptr, + HELP_CALLOUT_LABEL_COLOR, + HELP_DESCRIPTION_COLOR, + ANCHOR_DESCRIPTION, + nullptr, + ANCHOR_DESCRIPTION, + { 0, 0 } + }, + // LEFT_STICK, + { + ATG::HelpID::LEFT_STICK, + CalloutType::LINE_TO_ANCHOR, + TO_RIGHT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_LEFT_STICK, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_LEFT_STICK, + nullptr, + CALLOUT_LINE_LEFT_STICK, + { 0, 0 } + }, + // LEFT_STICK_CLICK, + { + ATG::HelpID::LEFT_STICK_CLICK, + CalloutType::LINE_TO_ANCHOR, + TO_RIGHT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_LEFT_STICK_CLICK, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_LEFT_STICK_CLICK, + nullptr, + CALLOUT_LINE_LEFT_STICK_CLICK, + MIDPOINT_LINE_LEFT_STICK_CLICK + }, + // RIGHT_STICK + { + ATG::HelpID::RIGHT_STICK, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_RIGHT_STICK, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_RIGHT_STICK, + nullptr, + CALLOUT_LINE_RIGHT_STICK, + { 0, 0 } + }, + // RIGHT_STICK_CLICK + { + ATG::HelpID::RIGHT_STICK_CLICK, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_RIGHT_STICK_CLICK, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_RIGHT_STICK_CLICK, + nullptr, + CALLOUT_LINE_RIGHT_STICK_CLICK, + MIDPOINT_LINE_RIGHT_STICK_CLICK + }, + // DPAD_UP + { + ATG::HelpID::DPAD_UP, + CalloutType::NO_CONTAINER, + TO_RIGHT, + SEGOE_UI_18PT, + PRE_TEXT_DPAD_UP, + nullptr, + HELP_CALLOUT_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_DPAD_ALL, + nullptr, + CALLOUT_LINE_DPAD_ALL + }, + // DPAD_DOWN + { + ATG::HelpID::DPAD_DOWN, + CalloutType::NO_CONTAINER, + TO_RIGHT, + SEGOE_UI_18PT, + PRE_TEXT_DPAD_DOWN, + nullptr, + HELP_CALLOUT_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_DPAD_ALL, + nullptr, + CALLOUT_LINE_DPAD_ALL + }, + // DPAD_LEFT + { + ATG::HelpID::DPAD_LEFT, + CalloutType::NO_CONTAINER, + TO_RIGHT, + SEGOE_UI_18PT, + PRE_TEXT_DPAD_LEFT, + nullptr, + HELP_CALLOUT_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_DPAD_ALL, + nullptr, + CALLOUT_LINE_DPAD_ALL + }, + // DPAD_RIGHT + { + ATG::HelpID::DPAD_RIGHT, + CalloutType::NO_CONTAINER, + TO_RIGHT, + SEGOE_UI_18PT, + PRE_TEXT_DPAD_RIGHT, + nullptr, + HELP_CALLOUT_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_DPAD_ALL, + nullptr, + CALLOUT_LINE_DPAD_ALL + }, + // DPAD_ALL + { + ATG::HelpID::DPAD_ALL, + CalloutType::LINE_TO_ANCHOR, + TO_RIGHT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_DPAD_ALL, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_DPAD_ALL, + nullptr, + CALLOUT_LINE_DPAD_ALL, + { 0, 0 } + }, + // RIGHT_SHOULDER + { + ATG::HelpID::RIGHT_SHOULDER, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_RIGHT_SHOULDER, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_RIGHT_SHOULDER, + nullptr, + CALLOUT_LINE_RIGHT_SHOULDER, + MIDPOINT_LINE_RIGHT_SHOULDER + }, + // RIGHT_TRIGGER + { + ATG::HelpID::RIGHT_TRIGGER, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_RIGHT_TRIGGER, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_RIGHT_TRIGGER, + nullptr, + CALLOUT_LINE_RIGHT_TRIGGER, + MIDPOINT_LINE_RIGHT_TRIGGER + }, + // LEFT_SHOULDER + { + ATG::HelpID::LEFT_SHOULDER, + CalloutType::LINE_TO_ANCHOR, + TO_RIGHT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_LEFT_SHOULDER, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_LEFT_SHOULDER, + nullptr, + CALLOUT_LINE_LEFT_SHOULDER, + MIDPOINT_LINE_LEFT_SHOULDER + }, + // LEFT_TRIGGER + { + ATG::HelpID::LEFT_TRIGGER, + CalloutType::LINE_TO_ANCHOR, + TO_RIGHT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_LEFT_TRIGGER, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_LEFT_TRIGGER, + nullptr, + CALLOUT_LINE_LEFT_TRIGGER, + MIDPOINT_LINE_LEFT_TRIGGER + }, + // A_BUTTON + { + ATG::HelpID::A_BUTTON, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + PRE_TEXT_A_BUTTON, + nullptr, + PRE_TEXT_A_BUTTON_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_A_BUTTON, + nullptr, + CALLOUT_LINE_A_BUTTON, + { 0, 0 } + }, + // B_BUTTON + { + ATG::HelpID::B_BUTTON, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + PRE_TEXT_B_BUTTON, + nullptr, + PRE_TEXT_B_BUTTON_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_B_BUTTON, + nullptr, + CALLOUT_LINE_B_BUTTON, + { 0, 0 } + }, + // X_BUTTON + { + ATG::HelpID::X_BUTTON, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + PRE_TEXT_X_BUTTON, + nullptr, + PRE_TEXT_X_BUTTON_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_X_BUTTON, + nullptr, + CALLOUT_LINE_X_BUTTON, + MIDPOINT_LINE_X_BUTTON + }, + // Y_BUTTON + { + ATG::HelpID::Y_BUTTON, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + PRE_TEXT_Y_BUTTON, + nullptr, + PRE_TEXT_Y_BUTTON_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_Y_BUTTON, + nullptr, + CALLOUT_LINE_Y_BUTTON, + { 0, 0 } + }, + // MENU_BUTTON (Same as start) + { + ATG::HelpID::MENU_BUTTON, + CalloutType::LINE_TO_ANCHOR, + TO_LEFT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_LINE_MENU, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_MENU, + nullptr, + CALLOUT_LINE_MENU, + MIDPOINT_LINE_MENU + }, + // VIEW_BUTTON + { + ATG::HelpID::VIEW_BUTTON, + CalloutType::LINE_TO_ANCHOR, + TO_RIGHT, + SEGOE_UI_18PT, + nullptr, + LABEL_TEXT_LINE_VIEW, + HELP_CALLOUT_LABEL_COLOR, + HELP_CALLOUT_COLOR, + ANCHOR_VIEW, + nullptr, + CALLOUT_LINE_VIEW, + MIDPOINT_LINE_VIEW + } +}; + +_Use_decl_annotations_ +ATG::Help::Help(const wchar_t* title, const wchar_t* description, const HelpButtonAssignment* buttons, size_t buttonCount, bool linearColors) : + m_linearColors(linearColors), + m_calloutCount(0), + m_callouts(nullptr) +{ + if (!buttons) + { + throw std::invalid_argument("buttons must be non null"); + } + + if (!buttonCount) + { + throw std::out_of_range("buttonCount is 0!"); + } + + m_calloutCount = buttonCount; + + if (title) + { + ++m_calloutCount; + } + + if (description) + { + ++m_calloutCount; + } + + bool dpadLabels = true; + float dpadYOffset[4] = {0.f, 0.f, 0.f, 0.f}; + + static const float c_fontSize18 = 31.9218750f; + + for (size_t j = 0; j < buttonCount; ++j) + { + switch (buttons[j].id) + { + case HelpID::DPAD_UP: + dpadYOffset[0] = c_fontSize18; + dpadLabels = true; + break; + + case HelpID::DPAD_DOWN: + dpadYOffset[1] = c_fontSize18; + dpadLabels = true; + break; + + case HelpID::DPAD_RIGHT: + dpadYOffset[2] = c_fontSize18; + dpadLabels = true; + break; + + case HelpID::DPAD_LEFT: + dpadYOffset[3] = c_fontSize18; + dpadLabels = true; + break; + } + } + + if (dpadLabels) + { + ++m_calloutCount; + } + + m_callouts = new CalloutBox[m_calloutCount]; + + size_t index = 0; + + if (title) + { + CalloutBox::Create(m_callouts[index++], title, ATG::HelpID::TITLE_TEXT, m_linearColors); + } + + if (description) + { + CalloutBox::Create(m_callouts[index++], description, ATG::HelpID::DESCRIPTION_TEXT, m_linearColors); + } + + if (dpadLabels) + { + CalloutBox::Create(m_callouts[index++], nullptr, ATG::HelpID::DPAD_ALL, m_linearColors); + } + + for (size_t j = 0; j < buttonCount; ++j) + { + CalloutBox::Create(m_callouts[index++], buttons[j].buttonText, buttons[j].id, m_linearColors); + + // DPAD buttons should appear in the order of UP, DOWN, LEFT, RIGHT. In the event that not all buttons + // are used, they still need to appear in order. Apply an offset to each DPAD item using the dpadButtonsYOffset value + // for the button used. + + switch (buttons[j].id) + { + case HelpID::DPAD_UP: + m_callouts[index - 1].anchor.y += (LONG)dpadYOffset[0]; + break; + + case HelpID::DPAD_DOWN: + m_callouts[index - 1].anchor.y += (LONG)(dpadYOffset[0] + dpadYOffset[1]); + break; + + case HelpID::DPAD_RIGHT: + m_callouts[index - 1].anchor.y += (LONG)(dpadYOffset[0] + dpadYOffset[1] + dpadYOffset[2]); + break; + + case HelpID::DPAD_LEFT: + m_callouts[index - 1].anchor.y += (LONG)(dpadYOffset[0] + dpadYOffset[1] + dpadYOffset[2] + dpadYOffset[3]); + break; + + case HelpID::DPAD_ALL: + throw std::exception("Do not use DPAD_ALL in help array"); + break; + } + } +} + +ATG::Help::~Help() +{ + if (m_callouts) + { + delete[] m_callouts; + m_callouts = nullptr; + } +} + +void ATG::Help::Render() +{ + CD3D11_VIEWPORT vp1(0.0f, 0.0f, static_cast(m_screenSize.right), static_cast(m_screenSize.bottom)); + m_spriteBatch->SetViewport(vp1); + m_spriteBatch->Begin(SpriteSortMode_Immediate, m_states->AlphaBlend()); + + // Draw background image + m_spriteBatch->Draw(m_backgroundTex.Get(), m_screenSize); + + // Draw gamepad controller + m_spriteBatch->Draw(m_gamepadTex.Get(), m_screenSize); + + m_spriteBatch->End(); + + CD3D11_VIEWPORT vp2(0.0f, 0.f, 1920.f, 1080.f); + m_spriteBatch->SetViewport(vp2); + m_spriteBatch->Begin(SpriteSortMode_Deferred, m_states->AlphaBlend()); + + // Process sprites + for (size_t j = 0; j < m_calloutCount; ++j) + { + m_callouts[j].Render(*this, m_spriteBatch.get()); + } + + m_spriteBatch->End(); + + XMMATRIX proj = XMMatrixOrthographicOffCenterRH(0.f, 1920.f, 1080.f, 0.f, 0.f, 1.f); + m_lineEffect->SetProjection(proj); + + m_context->OMSetBlendState(m_states->Opaque(), nullptr, 0xFFFFFFFF); + m_context->OMSetDepthStencilState(m_states->DepthNone(), 0); + m_context->RSSetState(m_states->CullNone()); + + m_lineEffect->Apply(m_context.Get()); + m_context->IASetInputLayout(m_lineLayout.Get()); + + m_primBatch->Begin(); + + for (size_t j = 0; j < m_calloutCount; ++j) + { + m_callouts[j].Render(m_primBatch.get()); + } + + m_primBatch->End(); +} + +void ATG::Help::ReleaseDevice() +{ + m_spriteBatch.reset(); + m_states.reset(); + m_primBatch.reset(); + m_lineEffect.reset(); + + for (int i = 0; i < _countof(m_spriteFonts); ++i) + { + m_spriteFonts[i].reset(); + } + + m_lineLayout.Reset(); + m_circleTex.Reset(); + m_gamepadTex.Reset(); + m_backgroundTex.Reset(); + m_context.Reset(); +} + +void ATG::Help::RestoreDevice(ID3D11DeviceContext* context) +{ + m_context = context; + + Microsoft::WRL::ComPtr device; + context->GetDevice(device.GetAddressOf()); + + m_spriteBatch = std::make_unique(context); + + m_states = std::make_unique(device.Get()); + + m_primBatch = std::make_unique>(context); + + m_lineEffect = std::make_unique(device.Get()); + m_lineEffect->SetVertexColorEnabled(true); + + { + void const* shaderByteCode; + size_t shaderLen; + + m_lineEffect->GetVertexShaderBytecode(&shaderByteCode, &shaderLen); + + DX::ThrowIfFailed( + device->CreateInputLayout(VertexPositionColor::InputElements, VertexPositionColor::InputElementCount, + shaderByteCode, shaderLen, + m_lineLayout.ReleaseAndGetAddressOf()) + ); + } + +#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) + wchar_t buff[MAX_PATH]; + DX::FindMediaFile(buff, MAX_PATH, L"Media//Fonts//SegoeUI_18.spritefont"); + m_spriteFonts[SEGOE_UI_18PT] = std::make_unique(device.Get(), buff); + + DX::FindMediaFile(buff, MAX_PATH, L"Media//Fonts//SegoeUI_22.spritefont"); + m_spriteFonts[SEGOE_UI_22PT] = std::make_unique(device.Get(), buff); + + DX::FindMediaFile(buff, MAX_PATH, L"Media//Fonts//SegoeUI_36.spritefont"); + m_spriteFonts[SEGOE_UI_36PT] = std::make_unique(device.Get(), buff); + + DX::FindMediaFile(buff, MAX_PATH, L"Media//Textures//callout_circle.dds"); + DX::ThrowIfFailed(CreateDDSTextureFromFileEx(device.Get(), buff, 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, m_linearColors, nullptr, m_circleTex.ReleaseAndGetAddressOf())); + + DX::FindMediaFile(buff, MAX_PATH, L"Media//Textures//gamepad.dds"); + DX::ThrowIfFailed(CreateDDSTextureFromFileEx(device.Get(), buff, 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, m_linearColors, nullptr, m_gamepadTex.ReleaseAndGetAddressOf())); + + DX::FindMediaFile(buff, MAX_PATH, L"Media//Textures//ATGSampleBackground.DDS"); + DX::ThrowIfFailed(CreateDDSTextureFromFileEx(device.Get(), buff, 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, m_linearColors, nullptr, m_backgroundTex.ReleaseAndGetAddressOf())); +#else + m_spriteFonts[SEGOE_UI_18PT] = std::make_unique(device.Get(), L"SegoeUI_18.spritefont"); + m_spriteFonts[SEGOE_UI_22PT] = std::make_unique(device.Get(), L"SegoeUI_22.spritefont"); + m_spriteFonts[SEGOE_UI_36PT] = std::make_unique(device.Get(), L"SegoeUI_36.spritefont"); + + DX::ThrowIfFailed(CreateDDSTextureFromFileEx(device.Get(), L"callout_circle.dds", 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, m_linearColors, nullptr, m_circleTex.ReleaseAndGetAddressOf())); + DX::ThrowIfFailed(CreateDDSTextureFromFileEx(device.Get(), L"gamepad.dds", 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, m_linearColors, nullptr, m_gamepadTex.ReleaseAndGetAddressOf())); + DX::ThrowIfFailed(CreateDDSTextureFromFileEx(device.Get(), L"ATGSampleBackground.DDS", 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, m_linearColors, nullptr, m_backgroundTex.ReleaseAndGetAddressOf())); +#endif +} + +void ATG::Help::SetWindow(const RECT& output) +{ + m_screenSize = output; +} diff --git a/Kits/ATGTK/ControllerHelp.h b/Kits/ATGTK/ControllerHelp.h new file mode 100644 index 0000000000000000000000000000000000000000..62334d19f97d739be561b59a67419888e926f01d --- /dev/null +++ b/Kits/ATGTK/ControllerHelp.h @@ -0,0 +1,92 @@ +//-------------------------------------------------------------------------------------- +// File: ControllerHelp.h +// +// Help display for GamePad-based control schemes +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright (c) Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------------- + +#pragma once + +#include "CommonStates.h" +#include "Effects.h" +#include "SpriteBatch.h" +#include "SpriteFont.h" +#include "PrimitiveBatch.h" +#include "VertexTypes.h" + + +namespace ATG +{ + enum HelpID + { + TITLE_TEXT = 0, + DESCRIPTION_TEXT, + LEFT_STICK, + LEFT_STICK_CLICK, + RIGHT_STICK, + RIGHT_STICK_CLICK, + DPAD_UP, + DPAD_DOWN, + DPAD_LEFT, + DPAD_RIGHT, + DPAD_ALL, + RIGHT_SHOULDER, + RIGHT_TRIGGER, + LEFT_SHOULDER, + LEFT_TRIGGER, + A_BUTTON, + B_BUTTON, + X_BUTTON, + Y_BUTTON, + MENU_BUTTON, + VIEW_BUTTON, + MAX_COUNT + }; + + struct HelpButtonAssignment + { + HelpID id; + const wchar_t* buttonText; + }; + + class Help + { + public: + Help(_In_z_ const wchar_t* title, _In_z_ const wchar_t* description, + _In_count_(buttonCount) const HelpButtonAssignment* buttons, size_t buttonCount, bool linearColors = false); + ~Help(); + + void Render(); + + void ReleaseDevice(); + void RestoreDevice(ID3D11DeviceContext* context); + + void SetWindow(const RECT& output); + + struct CalloutBox; + + private: + std::unique_ptr m_spriteBatch; + std::unique_ptr m_states; + std::unique_ptr> m_primBatch; + std::unique_ptr m_lineEffect; + std::unique_ptr m_spriteFonts[3]; + Microsoft::WRL::ComPtr m_lineLayout; + Microsoft::WRL::ComPtr m_circleTex; + Microsoft::WRL::ComPtr m_gamepadTex; + Microsoft::WRL::ComPtr m_backgroundTex; + Microsoft::WRL::ComPtr m_context; + + bool m_linearColors; + RECT m_screenSize; + + size_t m_calloutCount; + CalloutBox* m_callouts; + }; +} \ No newline at end of file diff --git a/Kits/ATGTK/DebugDraw.cpp b/Kits/ATGTK/DebugDraw.cpp new file mode 100644 index 0000000000000000000000000000000000000000..529f0fbf1d744d7bff14e56ed4afaf054e40c6fe --- /dev/null +++ b/Kits/ATGTK/DebugDraw.cpp @@ -0,0 +1,282 @@ +//-------------------------------------------------------------------------------------- +// File: DebugDraw.cpp +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright(c) Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------------- + +#include "pch.h" +#include "DebugDraw.h" + +using namespace DirectX; + +namespace +{ + inline void XM_CALLCONV DrawCube(PrimitiveBatch* batch, + CXMMATRIX matWorld, + FXMVECTOR color) + { + static const XMVECTORF32 s_verts[8] = + { + { -1.f, -1.f, -1.f, 0.f }, + { 1.f, -1.f, -1.f, 0.f }, + { 1.f, -1.f, 1.f, 0.f }, + { -1.f, -1.f, 1.f, 0.f }, + { -1.f, 1.f, -1.f, 0.f }, + { 1.f, 1.f, -1.f, 0.f }, + { 1.f, 1.f, 1.f, 0.f }, + { -1.f, 1.f, 1.f, 0.f } + }; + + static const WORD s_indices[] = + { + 0, 1, + 1, 2, + 2, 3, + 3, 0, + 4, 5, + 5, 6, + 6, 7, + 7, 4, + 0, 4, + 1, 5, + 2, 6, + 3, 7 + }; + + VertexPositionColor verts[8]; + for (size_t i = 0; i < 8; ++i) + { + XMVECTOR v = XMVector3Transform(s_verts[i], matWorld); + XMStoreFloat3(&verts[i].position, v); + XMStoreFloat4(&verts[i].color, color); + } + + batch->DrawIndexed(D3D11_PRIMITIVE_TOPOLOGY_LINELIST, s_indices, _countof(s_indices), verts, 8); + } +} + + +void XM_CALLCONV DX::Draw(PrimitiveBatch* batch, + const BoundingSphere& sphere, + FXMVECTOR color) +{ + XMVECTOR origin = XMLoadFloat3(&sphere.Center); + + const float radius = sphere.Radius; + + XMVECTOR xaxis = g_XMIdentityR0 * radius; + XMVECTOR yaxis = g_XMIdentityR1 * radius; + XMVECTOR zaxis = g_XMIdentityR2 * radius; + + DrawRing(batch, origin, xaxis, zaxis, color); + DrawRing(batch, origin, xaxis, yaxis, color); + DrawRing(batch, origin, yaxis, zaxis, color); +} + + +void XM_CALLCONV DX::Draw(PrimitiveBatch* batch, + const BoundingBox& box, + FXMVECTOR color) +{ + XMMATRIX matWorld = XMMatrixScaling(box.Extents.x, box.Extents.y, box.Extents.z); + XMVECTOR position = XMLoadFloat3(&box.Center); + matWorld.r[3] = XMVectorSelect(matWorld.r[3], position, g_XMSelect1110); + + DrawCube(batch, matWorld, color); +} + + +void XM_CALLCONV DX::Draw(PrimitiveBatch* batch, + const BoundingOrientedBox& obb, + FXMVECTOR color) +{ + XMMATRIX matWorld = XMMatrixRotationQuaternion(XMLoadFloat4(&obb.Orientation)); + XMMATRIX matScale = XMMatrixScaling(obb.Extents.x, obb.Extents.y, obb.Extents.z); + matWorld = XMMatrixMultiply(matScale, matWorld); + XMVECTOR position = XMLoadFloat3(&obb.Center); + matWorld.r[3] = XMVectorSelect(matWorld.r[3], position, g_XMSelect1110); + + DrawCube(batch, matWorld, color); +} + + +void XM_CALLCONV DX::Draw(PrimitiveBatch* batch, + const BoundingFrustum& frustum, + FXMVECTOR color) +{ + XMFLOAT3 corners[BoundingFrustum::CORNER_COUNT]; + frustum.GetCorners(corners); + + VertexPositionColor verts[24] = {}; + verts[0].position = corners[0]; + verts[1].position = corners[1]; + verts[2].position = corners[1]; + verts[3].position = corners[2]; + verts[4].position = corners[2]; + verts[5].position = corners[3]; + verts[6].position = corners[3]; + verts[7].position = corners[0]; + + verts[8].position = corners[0]; + verts[9].position = corners[4]; + verts[10].position = corners[1]; + verts[11].position = corners[5]; + verts[12].position = corners[2]; + verts[13].position = corners[6]; + verts[14].position = corners[3]; + verts[15].position = corners[7]; + + verts[16].position = corners[4]; + verts[17].position = corners[5]; + verts[18].position = corners[5]; + verts[19].position = corners[6]; + verts[20].position = corners[6]; + verts[21].position = corners[7]; + verts[22].position = corners[7]; + verts[23].position = corners[4]; + + for (size_t j = 0; j < _countof(verts); ++j) + { + XMStoreFloat4(&verts[j].color, color); + } + + batch->Draw(D3D11_PRIMITIVE_TOPOLOGY_LINELIST, verts, _countof(verts)); +} + + +void XM_CALLCONV DX::DrawGrid(PrimitiveBatch* batch, + FXMVECTOR xAxis, + FXMVECTOR yAxis, + FXMVECTOR origin, + size_t xdivs, + size_t ydivs, + GXMVECTOR color) +{ + xdivs = std::max(1, xdivs); + ydivs = std::max(1, ydivs); + + for (size_t i = 0; i <= xdivs; ++i) + { + float percent = float(i) / float(xdivs); + percent = (percent * 2.f) - 1.f; + XMVECTOR scale = XMVectorScale(xAxis, percent); + scale = XMVectorAdd(scale, origin); + + VertexPositionColor v1(XMVectorSubtract(scale, yAxis), color); + VertexPositionColor v2(XMVectorAdd(scale, yAxis), color); + batch->DrawLine(v1, v2); + } + + for (size_t i = 0; i <= ydivs; i++) + { + FLOAT percent = float(i) / float(ydivs); + percent = (percent * 2.f) - 1.f; + XMVECTOR scale = XMVectorScale(yAxis, percent); + scale = XMVectorAdd(scale, origin); + + VertexPositionColor v1(XMVectorSubtract(scale, xAxis), color); + VertexPositionColor v2(XMVectorAdd(scale, xAxis), color); + batch->DrawLine(v1, v2); + } +} + + +void XM_CALLCONV DX::DrawRing(PrimitiveBatch* batch, + FXMVECTOR origin, + FXMVECTOR majorAxis, + FXMVECTOR minorAxis, + GXMVECTOR color) +{ + static const size_t c_ringSegments = 32; + + VertexPositionColor verts[c_ringSegments + 1]; + + FLOAT fAngleDelta = XM_2PI / float(c_ringSegments); + // Instead of calling cos/sin for each segment we calculate + // the sign of the angle delta and then incrementally calculate sin + // and cosine from then on. + XMVECTOR cosDelta = XMVectorReplicate(cosf(fAngleDelta)); + XMVECTOR sinDelta = XMVectorReplicate(sinf(fAngleDelta)); + XMVECTOR incrementalSin = XMVectorZero(); + static const XMVECTORF32 s_initialCos = + { + 1.f, 1.f, 1.f, 1.f + }; + XMVECTOR incrementalCos = s_initialCos.v; + for (size_t i = 0; i < c_ringSegments; i++) + { + XMVECTOR pos = XMVectorMultiplyAdd(majorAxis, incrementalCos, origin); + pos = XMVectorMultiplyAdd(minorAxis, incrementalSin, pos); + XMStoreFloat3(&verts[i].position, pos); + XMStoreFloat4(&verts[i].color, color); + // Standard formula to rotate a vector. + XMVECTOR newCos = incrementalCos * cosDelta - incrementalSin * sinDelta; + XMVECTOR newSin = incrementalCos * sinDelta + incrementalSin * cosDelta; + incrementalCos = newCos; + incrementalSin = newSin; + } + verts[c_ringSegments] = verts[0]; + + batch->Draw(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, verts, c_ringSegments + 1); +} + + +void XM_CALLCONV DX::DrawRay(PrimitiveBatch* batch, + FXMVECTOR origin, + FXMVECTOR direction, + bool normalize, + FXMVECTOR color) +{ + VertexPositionColor verts[3]; + XMStoreFloat3(&verts[0].position, origin); + + XMVECTOR normDirection = XMVector3Normalize(direction); + XMVECTOR rayDirection = (normalize) ? normDirection : direction; + + XMVECTOR perpVector = XMVector3Cross(normDirection, g_XMIdentityR1); + + if (XMVector3Equal(XMVector3LengthSq(perpVector), g_XMZero)) + { + perpVector = XMVector3Cross(normDirection, g_XMIdentityR2); + } + perpVector = XMVector3Normalize(perpVector); + + XMStoreFloat3(&verts[1].position, XMVectorAdd(rayDirection, origin)); + perpVector = XMVectorScale(perpVector, 0.0625f); + normDirection = XMVectorScale(normDirection, -0.25f); + rayDirection = XMVectorAdd(perpVector, rayDirection); + rayDirection = XMVectorAdd(normDirection, rayDirection); + XMStoreFloat3(&verts[2].position, XMVectorAdd(rayDirection, origin)); + + XMStoreFloat4(&verts[0].color, color); + XMStoreFloat4(&verts[1].color, color); + XMStoreFloat4(&verts[2].color, color); + + batch->Draw(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, verts, 2); +} + + +void XM_CALLCONV DX::DrawTriangle(PrimitiveBatch* batch, + FXMVECTOR pointA, + FXMVECTOR pointB, + FXMVECTOR pointC, + GXMVECTOR color) +{ + VertexPositionColor verts[4]; + XMStoreFloat3(&verts[0].position, pointA); + XMStoreFloat3(&verts[1].position, pointB); + XMStoreFloat3(&verts[2].position, pointC); + XMStoreFloat3(&verts[3].position, pointA); + + XMStoreFloat4(&verts[0].color, color); + XMStoreFloat4(&verts[1].color, color); + XMStoreFloat4(&verts[2].color, color); + XMStoreFloat4(&verts[3].color, color); + + batch->Draw(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, verts, 4); +} \ No newline at end of file diff --git a/Kits/ATGTK/DebugDraw.h b/Kits/ATGTK/DebugDraw.h new file mode 100644 index 0000000000000000000000000000000000000000..ef4712dd8a26b796036aef68f6c8d9b87f3c4f93 --- /dev/null +++ b/Kits/ATGTK/DebugDraw.h @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------------------- +// File: DebugDraw.h +// +// Helpers for drawing various debug shapes using PrimitiveBatch +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright(c) Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------------- + +#pragma once + +#include + +#include "PrimitiveBatch.h" +#include "VertexTypes.h" + + +namespace DX +{ + void XM_CALLCONV Draw(DirectX::PrimitiveBatch* batch, + const DirectX::BoundingSphere& sphere, + DirectX::FXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV Draw(DirectX::PrimitiveBatch* batch, + const DirectX::BoundingBox& box, + DirectX::FXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV Draw(DirectX::PrimitiveBatch* batch, + const DirectX::BoundingOrientedBox& obb, + DirectX::FXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV Draw(DirectX::PrimitiveBatch* batch, + const DirectX::BoundingFrustum& frustum, + DirectX::FXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV DrawGrid(DirectX::PrimitiveBatch* batch, + DirectX::FXMVECTOR xAxis, DirectX::FXMVECTOR yAxis, + DirectX::FXMVECTOR origin, size_t xdivs, size_t ydivs, + DirectX::GXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV DrawRing(DirectX::PrimitiveBatch* batch, + DirectX::FXMVECTOR origin, DirectX::FXMVECTOR majorAxis, DirectX::FXMVECTOR minorAxis, + DirectX::GXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV DrawRay(DirectX::PrimitiveBatch* batch, + DirectX::FXMVECTOR origin, DirectX::FXMVECTOR direction, bool normalize = true, + DirectX::FXMVECTOR color = DirectX::Colors::White); + + void XM_CALLCONV DrawTriangle(DirectX::PrimitiveBatch* batch, + DirectX::FXMVECTOR pointA, DirectX::FXMVECTOR pointB, DirectX::FXMVECTOR pointC, + DirectX::GXMVECTOR color = DirectX::Colors::White); +} \ No newline at end of file diff --git a/Kits/ATGTK/OrbitCamera.cpp b/Kits/ATGTK/OrbitCamera.cpp new file mode 100644 index 0000000000000000000000000000000000000000..08babf851706ca579a54aec2b0412f539cded255 --- /dev/null +++ b/Kits/ATGTK/OrbitCamera.cpp @@ -0,0 +1,730 @@ +//-------------------------------------------------------------------------------------- +// File: OrbitCamera.cpp +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright(c) Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------------- + +#include "pch.h" +#include "OrbitCamera.h" + +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" +#include "SimpleMath.h" + +using namespace DirectX; +using namespace DX; + +#pragma warning(disable : 4324) + +namespace +{ + // Ken Shoemake, "Arcball Rotation Control", Graphics Gems IV, pg 176 - 192 + class __declspec(align(16)) ArcBall + { + public: + ArcBall() : + m_width(800.f), + m_height(400.f), + m_radius(1.f), + m_drag(false) + { + Reset(); + } + + void Reset() + { + m_qdown = m_qnow = XMQuaternionIdentity(); + } + + void OnBegin(int x, int y, DirectX::FXMVECTOR quat) + { + m_drag = true; + m_qdown = quat; + m_downPoint = ScreenToVector(float(x), float(y)); + } + + void OnMove(int x, int y) + { + using namespace DirectX; + if (m_drag) + { + XMVECTOR curr = ScreenToVector(float(x), float(y)); + + m_qnow = XMQuaternionMultiply(m_qdown, QuatFromBallPoints(m_downPoint, curr)); + m_qnow = XMQuaternionNormalize(m_qnow); + } + } + + void OnEnd() + { + m_drag = false; + } + void SetWindow(int width, int height) + { + m_width = float(width); + m_height = float(height); + } + + void SetRadius(float radius) + { + m_radius = radius; + } + + XMVECTOR GetQuat() const { return m_qnow; } + + bool IsDragging() const { return m_drag; } + + private: + float m_width; + float m_height; + float m_radius; + XMVECTOR m_qdown; + XMVECTOR m_qnow; + XMVECTOR m_downPoint; + bool m_drag; + + DirectX::XMVECTOR ScreenToVector(float screenx, float screeny) + { + float x = -(screenx - m_width / 2.f) / (m_radius * m_width / 2.f); + float y = (screeny - m_height / 2.f) / (m_radius * m_height / 2.f); + + float z = 0.0f; + float mag = x * x + y * y; + + if (mag > 1.0f) + { + float scale = 1.0f / sqrtf(mag); + x *= scale; + y *= scale; + } + else + z = sqrtf(1.0f - mag); + + return DirectX::XMVectorSet(x, y, z, 0); + } + + static DirectX::XMVECTOR QuatFromBallPoints(DirectX::FXMVECTOR vFrom, DirectX::FXMVECTOR vTo) + { + using namespace DirectX; + XMVECTOR dot = XMVector3Dot(vFrom, vTo); + XMVECTOR vPart = XMVector3Cross(vFrom, vTo); + return XMVectorSelect(dot, vPart, g_XMSelect1110); + } + }; +} + + +class __declspec(align(16)) OrbitCamera::Impl +{ +public: + Impl() : + m_nearDistance(0.1f), + m_farDistance(10000.f), + m_fov(XM_PI / 4.f), + m_defaultSensitivity(1.f), + m_minSensitivity(0.01f), + m_maxSensitivity(10.f), + m_stepSensitivity(0.01f), + m_defaultRadius(5.f), + m_minRadius(1.f), + m_maxRadius(FLT_MAX), + m_rotRate(1.f), + m_radiusRate(1.f), + m_flags(0), + m_lhcoords(false), +#ifdef _XBOX_ONE + m_width(1920), + m_height(1080) +#else + m_width(1280), + m_height(720) +#endif + { + m_view = m_projection = XMMatrixIdentity(); + m_cameraPosition = m_homeFocus = g_XMZero; + m_homeRotation = g_XMIdentityR3; + + m_bounds.Center.x = m_bounds.Center.y = m_bounds.Center.z = 0.f; + m_bounds.Extents.x = m_bounds.Extents.y = m_bounds.Extents.z = FLT_MAX; + + Reset(); + } + + void Update(float elapsedTime, const GamePad::State& pad) + { + using namespace DirectX::SimpleMath; + + float handed = (m_lhcoords) ? 1.f : -1.f; + + Matrix im = XMMatrixInverse(nullptr, GetView()); + + if (!(m_flags & c_FlagsDisableTranslation)) + { + // Translate camera + Vector3 move = Vector3::Zero; + + if (pad.IsDPadUpPressed()) + { + move.y += 1.f; + } + else if (pad.IsDPadDownPressed()) + { + move.y -= 1.f; + } + + if (pad.IsDPadLeftPressed()) + { + move.x -= 1.f; + } + else if (pad.IsDPadRightPressed()) + { + move.x += 1.f; + } + + if (move.x != 0 || move.y != 0) + { + move = Vector3::TransformNormal(move, im); + + m_focus += move * elapsedTime * m_sensitivity; + + Vector3 minBound = m_bounds.Center - m_bounds.Extents; + Vector3 maxBound = m_bounds.Center + m_bounds.Extents; + m_focus = XMVectorMax(minBound, XMVectorMin(maxBound, m_focus)); + + m_viewDirty = true; + } + } + + // Rotate camera + Vector3 orbit(pad.thumbSticks.rightX, pad.thumbSticks.rightY, pad.thumbSticks.leftX); + orbit *= elapsedTime * m_rotRate; + + if (orbit.x != 0 || orbit.y != 0 || orbit.z != 0) + { + m_cameraRotation = XMQuaternionMultiply(m_cameraRotation, XMQuaternionRotationAxis(im.Right(), orbit.y * handed)); + m_cameraRotation = XMQuaternionMultiply(m_cameraRotation, XMQuaternionRotationAxis(im.Up(), -orbit.x * handed)); + + if (!(m_flags & c_FlagsDisableRollZ)) + { + m_cameraRotation = XMQuaternionMultiply(m_cameraRotation, XMQuaternionRotationAxis(im.Forward(), orbit.z)); + } + + m_cameraRotation = XMQuaternionNormalize(m_cameraRotation); + m_viewDirty = true; + } + + if (!(m_flags & c_FlagsDisableRadiusControl)) + { + if (pad.thumbSticks.leftY != 0) + { + m_radius -= pad.thumbSticks.leftY * elapsedTime * m_radiusRate; + m_radius = std::max(m_minRadius, std::min(m_maxRadius, m_radius)); + m_viewDirty = true; + } + } + + // Other controls + if (pad.IsLeftShoulderPressed() && pad.IsRightShoulderPressed()) + { + m_sensitivity = m_defaultSensitivity; + +#ifdef _DEBUG + (void)GetView(); + + char buff[128] = {}; + Vector4 tmp = m_cameraPosition; + sprintf_s(buff, "cameraPosition = { %2.2ff, %2.2ff, %2.2ff, 0.f};\n", tmp.x, tmp.y, tmp.z); + OutputDebugStringA(buff); + + tmp = m_cameraRotation; + sprintf_s(buff, "cameraRotation = { %2.2ff, %2.2ff, %2.2ff, %2.2ff};\n", tmp.x, tmp.y, tmp.z, tmp.w ); + OutputDebugStringA(buff); +#endif + } + else if (!(m_flags & c_FlagsDisableSensitivityControl)) + { + if (pad.IsRightShoulderPressed()) + { + m_sensitivity += m_stepSensitivity; + if (m_sensitivity > m_maxSensitivity) + m_sensitivity = m_maxSensitivity; + } + else if (pad.IsLeftShoulderPressed()) + { + m_sensitivity -= m_stepSensitivity; + if (m_sensitivity < m_minSensitivity) + m_sensitivity = m_minSensitivity; + } + } + + if (pad.IsRightStickPressed()) + { + Reset(); + } + + if (pad.IsLeftStickPressed() && !(m_flags & c_FlagsDisableFrameExtentsReset)) + { + m_radius = m_defaultRadius; + m_focus = m_homeFocus; + m_viewDirty = true; + } + } + + void Update(float elapsedTime, Mouse& mouse, Keyboard& kb) + { + using namespace DirectX::SimpleMath; + + float handed = (m_lhcoords) ? 1.f : -1.f; + + Matrix im = XMMatrixInverse(nullptr, GetView()); + + auto mstate = mouse.GetState(); + auto kbstate = kb.GetState(); + + if ((mstate.positionMode != Mouse::MODE_RELATIVE) && !m_arcBall.IsDragging()) + { + // Keyboard controls + if (m_flags & c_FlagsArrowKeysOrbit) + { + Vector3 orbit = Vector3::Zero; + + if (kbstate.Up || kbstate.W) + orbit.y = 1.f; + + if (kbstate.Down || kbstate.S) + orbit.y = -1.f; + + if (kbstate.Right || kbstate.D) + orbit.x = 1.f; + + if (kbstate.Left || kbstate.A) + orbit.x = -1.f; + + if (kbstate.Q) + orbit.z = -1.f; + + if (kbstate.E) + orbit.z = 1.f; + + if (orbit.x != 0 || orbit.y != 0 || orbit.z != 0) + { + orbit *= elapsedTime * m_rotRate; + + m_cameraRotation = XMQuaternionMultiply(m_cameraRotation, XMQuaternionRotationAxis(im.Right(), orbit.y * handed)); + m_cameraRotation = XMQuaternionMultiply(m_cameraRotation, XMQuaternionRotationAxis(im.Up(), -orbit.x * handed)); + + if (!(m_flags & c_FlagsDisableRollZ)) + { + m_cameraRotation = XMQuaternionMultiply(m_cameraRotation, XMQuaternionRotationAxis(im.Forward(), orbit.z)); + } + + m_cameraRotation = XMQuaternionNormalize(m_cameraRotation); + m_viewDirty = true; + } + } + else if (!(m_flags & c_FlagsDisableTranslation)) + { + // Arrow keys & WASD control translation of camera focus + Vector3 move = Vector3::Zero; + + float scale = m_radius; + if (kbstate.LeftShift || kbstate.RightShift) + scale *= 0.5f; + + if (m_flags & c_FlagsArrowKeys_XZ) + { + if (kbstate.PageUp) + move.y += scale; + + if (kbstate.PageDown) + move.y -= scale; + + if (kbstate.Up || kbstate.W) + move.z += scale * handed; + + if (kbstate.Down || kbstate.S) + move.z -= scale * handed; + } + else + { + if (kbstate.Up || kbstate.W) + move.y += scale; + + if (kbstate.Down || kbstate.S) + move.y -= scale; + + if (kbstate.PageUp) + move.z += scale * handed; + + if (kbstate.PageDown) + move.z -= scale * handed; + } + + if (kbstate.Right || kbstate.D) + move.x += scale; + + if (kbstate.Left || kbstate.A) + move.x -= scale; + + if (move.x != 0 || move.y != 0 || move.z != 0) + { + move = Vector3::TransformNormal(move, im); + + m_focus += move * elapsedTime; + + Vector3 minBound = m_bounds.Center - m_bounds.Extents; + Vector3 maxBound = m_bounds.Center + m_bounds.Extents; + m_focus = XMVectorMax(minBound, XMVectorMin(maxBound, m_focus)); + + m_viewDirty = true; + } + } + + if (kbstate.Home) + { + Reset(); + } + else if (kbstate.End && !(m_flags & c_FlagsDisableFrameExtentsReset)) + { + m_radius = m_defaultRadius; + m_focus = m_homeFocus; + m_viewDirty = true; + } + } + + // Mouse controls + if (mstate.positionMode == Mouse::MODE_RELATIVE) + { + if (!(m_flags & c_FlagsDisableTranslation)) + { + // Translate camera + Vector3 delta; + if (kbstate.LeftShift || kbstate.RightShift) + { + delta = Vector3(0.f, 0.f, -float(mstate.y) * handed) * m_radius * elapsedTime; + } + else + { + delta = Vector3(-float(mstate.x), float(mstate.y), 0.f) * m_radius * elapsedTime; + } + + delta = Vector3::TransformNormal(delta, im); + + m_focus += delta * elapsedTime * m_sensitivity; + + Vector3 minBound = m_bounds.Center - m_bounds.Extents; + Vector3 maxBound = m_bounds.Center + m_bounds.Extents; + m_focus = XMVectorMax(minBound, XMVectorMin(maxBound, m_focus)); + + m_viewDirty = true; + } + } + else if (m_arcBall.IsDragging()) + { + // Rotate camera + m_arcBall.OnMove(mstate.x, mstate.y); + m_cameraRotation = XMQuaternionInverse(m_arcBall.GetQuat()); + m_viewDirty = true; + } + else if (!(m_flags & c_FlagsDisableRadiusControl)) + { + // Radius with scroll wheel + m_radius = m_defaultRadius - ((float(mstate.scrollWheelValue) / 120.f) * m_radiusRate); + m_radius = std::max(m_minRadius, std::min(m_maxRadius, m_radius)); + m_viewDirty = true; + } + + if (!m_arcBall.IsDragging()) + { + if (mstate.rightButton && mstate.positionMode == Mouse::MODE_ABSOLUTE) + mouse.SetMode(Mouse::MODE_RELATIVE); + else if (!mstate.rightButton && mstate.positionMode == Mouse::MODE_RELATIVE) + mouse.SetMode(Mouse::MODE_ABSOLUTE); + + if (mstate.leftButton) + { + m_arcBall.OnBegin(mstate.x, mstate.y, XMQuaternionInverse(m_cameraRotation)); + } + } + else if (!mstate.leftButton) + { + m_arcBall.OnEnd(); + } + } + + void Reset() + { + m_focus = m_homeFocus; + m_radius = m_defaultRadius; + m_cameraRotation = m_homeRotation; + m_sensitivity = m_defaultSensitivity; + m_viewDirty = m_projDirty = true; + m_arcBall.Reset(); + m_arcBall.OnEnd(); + } + + mutable XMMATRIX m_view; + mutable XMMATRIX m_projection; + mutable XMVECTOR m_cameraPosition; + + XMVECTOR m_focus; + XMVECTOR m_homeFocus; + + XMVECTOR m_cameraRotation; + XMVECTOR m_homeRotation; + + float m_nearDistance; + float m_farDistance; + float m_fov; + float m_sensitivity; + float m_defaultSensitivity; + float m_minSensitivity; + float m_maxSensitivity; + float m_stepSensitivity; + float m_radius; + float m_defaultRadius; + float m_minRadius; + float m_maxRadius; + float m_rotRate; + float m_radiusRate; + unsigned int m_flags; + + bool m_lhcoords; + mutable bool m_viewDirty; + mutable bool m_projDirty; + + int m_width; + int m_height; + + DirectX::BoundingBox m_bounds; + + ArcBall m_arcBall; + + XMMATRIX GetView() const + { + m_viewDirty = false; + + XMVECTOR dir = XMVector3Rotate((m_lhcoords) ? g_XMNegIdentityR2 : g_XMIdentityR2, m_cameraRotation); + XMVECTOR up = XMVector3Rotate(g_XMIdentityR1, m_cameraRotation); + + m_cameraPosition = m_focus + m_radius * dir; + + if (m_lhcoords) + { + m_view = XMMatrixLookAtLH(m_cameraPosition, m_focus, up); + } + else + { + m_view = XMMatrixLookAtRH(m_cameraPosition, m_focus, up); + } + + return m_view; + } + + XMMATRIX GetProjection() const + { + m_projDirty = false; + + float aspectRatio = (m_height > 0.f) ? (float(m_width) / float(m_height)) : 1.f; + + if (m_lhcoords) + { + m_projection = XMMatrixPerspectiveFovLH(m_fov, aspectRatio, m_nearDistance, m_farDistance); + } + else + { + m_projection = XMMatrixPerspectiveFovRH(m_fov, aspectRatio, m_nearDistance, m_farDistance); + } + + return m_projection; + } +}; + + +// Public constructor. +OrbitCamera::OrbitCamera() +{ + auto ptr = reinterpret_cast(_aligned_malloc(sizeof(Impl), 16)); + pImpl.reset(new (ptr) Impl); + pImpl->Reset(); +} + + +// Move constructor. +OrbitCamera::OrbitCamera(OrbitCamera&& moveFrom) + : pImpl(std::move(moveFrom.pImpl)) +{ +} + + +// Move assignment. +OrbitCamera& OrbitCamera::operator= (OrbitCamera&& moveFrom) +{ + pImpl = std::move(moveFrom.pImpl); + return *this; +} + + +// Public destructor. +OrbitCamera::~OrbitCamera() +{ +} + + +// Public methods. +void OrbitCamera::Update(float elapsedTime, const GamePad::State& pad) +{ + pImpl->Update(elapsedTime, pad); +} + +void OrbitCamera::Update(float elapsedTime, Mouse& mouse, Keyboard& kb) +{ + pImpl->Update(elapsedTime, mouse, kb); +} + +void OrbitCamera::Reset() +{ + pImpl->Reset(); +} + +void OrbitCamera::SetWindow(int width, int height) +{ + pImpl->m_projDirty = true; + pImpl->m_width = width; + pImpl->m_height = height; + pImpl->m_arcBall.SetWindow(width, height); +} + +void OrbitCamera::SetProjectionParameters(float fov, float nearDistance, float farDistance, bool lhcoords) +{ + pImpl->m_projDirty = true; + pImpl->m_fov = fov; + pImpl->m_nearDistance = nearDistance; + pImpl->m_farDistance = farDistance; + pImpl->m_lhcoords = lhcoords; +} + +void OrbitCamera::SetFlags(unsigned int flags) +{ + pImpl->m_flags = flags; +} + +void OrbitCamera::SetRadius(float defaultRadius, float minRadius, float maxRadius) +{ + pImpl->m_viewDirty = true; + pImpl->m_radius = pImpl->m_defaultRadius = defaultRadius; + pImpl->m_minRadius = minRadius; + pImpl->m_maxRadius = maxRadius; +} + +void OrbitCamera::SetSensitivity(float defaultSensitivity, float minSensitivity, float maxSensitivity, float stepSensitivity) +{ + pImpl->m_sensitivity = pImpl->m_defaultSensitivity = defaultSensitivity; + pImpl->m_minSensitivity = minSensitivity; + pImpl->m_maxSensitivity = maxSensitivity; + pImpl->m_stepSensitivity = stepSensitivity; +} + +void OrbitCamera::SetRotationRate(float rotRate) +{ + pImpl->m_rotRate = rotRate; +} + +void OrbitCamera::SetRadiusRate(float radiusRate) +{ + pImpl->m_radiusRate = radiusRate; +} + +void OrbitCamera::SetBoundingBox(const DirectX::BoundingBox& box) +{ + pImpl->m_bounds = box; +} + +void XM_CALLCONV OrbitCamera::SetFocus(FXMVECTOR focus) +{ + pImpl->m_viewDirty = true; + pImpl->m_focus = pImpl->m_homeFocus = focus; +} + +void XM_CALLCONV OrbitCamera::SetRotation(FXMVECTOR rotation) +{ + XMVECTOR nr = XMQuaternionNormalize(rotation); + + pImpl->m_viewDirty = true; + pImpl->m_cameraRotation = pImpl->m_homeRotation = nr; +} + +void OrbitCamera::SetFrameExtents(const DirectX::BoundingSphere& sphere) +{ + pImpl->m_viewDirty = true; + + pImpl->m_radius = pImpl->m_defaultRadius = sphere.Radius * 2.f; + + XMVECTOR v = XMLoadFloat3(&sphere.Center); + pImpl->m_focus = pImpl->m_homeFocus = v; +} + +void OrbitCamera::SetFrameExtents(const DirectX::BoundingBox& box) +{ + pImpl->m_viewDirty = true; + + BoundingSphere sphere; + sphere.Center = box.Center; + sphere.Radius = std::max(box.Extents.x, std::max(box.Extents.y, box.Extents.z)); + + pImpl->m_radius = pImpl->m_defaultRadius = sphere.Radius * 2.f; + + XMVECTOR v = XMLoadFloat3(&sphere.Center); + pImpl->m_focus = pImpl->m_homeFocus = v; +} + + +// Public accessors. +XMMATRIX OrbitCamera::GetView() const +{ + if (pImpl->m_viewDirty) + { + return pImpl->GetView(); + } + else + { + return pImpl->m_view; + } +} + +XMMATRIX OrbitCamera::GetProjection() const +{ + if (pImpl->m_projDirty) + { + return pImpl->GetProjection(); + } + else + { + return pImpl->m_projection; + } +} + +XMVECTOR OrbitCamera::GetFocus() const +{ + return pImpl->m_focus; +} + +XMVECTOR OrbitCamera::GetPosition() const +{ + if (pImpl->m_viewDirty) + { + (void)pImpl->GetView(); + } + return pImpl->m_cameraPosition; +} + +unsigned int OrbitCamera::GetFlags() const +{ + return pImpl->m_flags; +} \ No newline at end of file diff --git a/Kits/ATGTK/OrbitCamera.h b/Kits/ATGTK/OrbitCamera.h new file mode 100644 index 0000000000000000000000000000000000000000..b0a8f33e1396686e3b6f22ccc995677b26f1a808 --- /dev/null +++ b/Kits/ATGTK/OrbitCamera.h @@ -0,0 +1,133 @@ +//-------------------------------------------------------------------------------------- +// File: OrbitCamera.h +// +// Helper for implementing Model-View camera +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright(c) Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------------- + +#pragma once + +#include +#include "GamePad.h" + + +namespace DirectX +{ + class Keyboard; + class Mouse; + + struct BoundingSphere; + struct BoundingBox; +} + +namespace DX +{ + class OrbitCamera + { + public: + OrbitCamera(); + + OrbitCamera(OrbitCamera&& moveFrom); + OrbitCamera& operator= (OrbitCamera&& moveFrom); + + OrbitCamera(OrbitCamera const&) = delete; + OrbitCamera& operator=(OrbitCamera const&) = delete; + + virtual ~OrbitCamera(); + + // Perform per-frame update using gamepad controls + // + // Right Thumbstick: Orbit Right, Left, Up, Down + // Left Thumbstick X: Roll Z + // Left Thumbstick Y: Increase/decrease orbit radius + // Left Thumbstick Button: Return to default focus/radius (frame extents) + // Right Thumstick Button: Reset camera + // Left/Right Shoulder Button: Increase/decrease/reset translation sensitivity + // DPad: Translate X/Y + // + void Update(float elapsedTime, const DirectX::GamePad::State& pad); + + // Perform per-frame update using keyboard & mouse controls + // + // WASD & Arrow Keys: Translate X/Y + // PageUp / PageDown: Translate Z + // End: Return to default focus/radius (frame extents) + // Home: Reset camera + // + // Hold Left Mouse Button: Orbit X/Y + // Hold Right Mouse Button: Translate X/Y (Shift Translates Z) + // Scroll wheel: Increase/decrease orbit radius + // + void Update(float elapsedTime, DirectX::Mouse& mouse, DirectX::Keyboard& kb); + + // Reset camera to default view + void Reset(); + + // Set projection window (pixels) + void SetWindow(int width, int height); + + // Set projection parameters + void SetProjectionParameters(float fov, float nearDistance, float farDistance, bool lhcoords = false); + + // Set model-view radius and radius limits + void SetRadius(float defaultRadius, float minRadius = 1.f, float maxRadius = FLT_MAX); + + // Set translation sensitivity and limits + void SetSensitivity(float defaultSensitivity, float minSensitivity, float maxSensitivity, float stepSensitivity); + + // Set rotation rate + void SetRotationRate(float rotRate); + + // Set radius rate + void SetRadiusRate(float radiusRate); + + // Set focus bounds (manually set properties are assumed to be in bounds) + void SetBoundingBox(const DirectX::BoundingBox& box); + + // Manually set initial/default focus/rotation + void XM_CALLCONV SetFocus(DirectX::FXMVECTOR focus); + void XM_CALLCONV SetRotation(DirectX::FXMVECTOR rotation); + + // Sets initial/default focus and radius to view a bounding volume + void SetFrameExtents(const DirectX::BoundingSphere& sphere); + void SetFrameExtents(const DirectX::BoundingBox& box); + + // Behavior control flags + static const unsigned int c_FlagsDisableTranslation = 0x1; // Disables all translation controls + static const unsigned int c_FlagsDisableRollZ = 0x2; // Disable roll in Z + static const unsigned int c_FlagsArrowKeys_XZ = 0x4; // WASD: Instead of translate X/Y, do translate in X/Z + static const unsigned int c_FlagsArrowKeysOrbit = 0x8; // WASD: Orbit X/Y instead of translate, Q/E roll in Z + static const unsigned int c_FlagsDisableRadiusControl = 0x10; // Disable radius controls + static const unsigned int c_FlagsDisableSensitivityControl = 0x20; // Disable sensitivity controls + static const unsigned int c_FlagsDisableFrameExtentsReset = 0x40; // Disable frame extents controls + + void SetFlags(unsigned int flags); + + // Returns view and projection matrices for camera + DirectX::XMMATRIX GetView() const; + DirectX::XMMATRIX GetProjection() const; + + // Returns the current focus point + DirectX::XMVECTOR GetFocus() const; + + // Returns the current camera position + DirectX::XMVECTOR GetPosition() const; + + // Returns current behavior control flags + unsigned int GetFlags() const; + + private: + // Private implementation. + class Impl; + + struct aligned_deleter { void operator()(void* p) { _aligned_free(p); } }; + + std::unique_ptr pImpl; + }; +} \ No newline at end of file diff --git a/Kits/ATGTK/TextConsole.cpp b/Kits/ATGTK/TextConsole.cpp index 618340b076f93563ac45c80c47f4e2b2137692f3..a07887c801a99db72657dcdf5e438e6c2457446f 100644 --- a/Kits/ATGTK/TextConsole.cpp +++ b/Kits/ATGTK/TextConsole.cpp @@ -217,6 +217,16 @@ void TextConsole::RestoreDevice(ID3D11DeviceContext* context, const wchar_t* fon m_font->SetDefaultCharacter(L' '); } + +void TextConsole::SetRotation(DXGI_MODE_ROTATION rotation) +{ + if (m_batch) + { + m_batch->SetRotation(rotation); + } +} + + void TextConsole::ProcessString(const wchar_t* str) { if (!m_lines) @@ -331,7 +341,7 @@ void TextConsoleImage::RestoreDevice(ID3D11DeviceContext* context, const wchar_t ComPtr device; context->GetDevice(device.GetAddressOf()); - WCHAR ext[_MAX_EXT]; + wchar_t ext[_MAX_EXT]; _wsplitpath_s(image, nullptr, 0, nullptr, 0, nullptr, 0, ext, _MAX_EXT); if (_wcsicmp(ext, L".dds") == 0) diff --git a/Kits/ATGTK/TextConsole.h b/Kits/ATGTK/TextConsole.h index d54f0550eefdfb3f54805e2a7607d1d131fd9658..8aa8a52c28d3a8b9238d9539504e1053aebc059c 100644 --- a/Kits/ATGTK/TextConsole.h +++ b/Kits/ATGTK/TextConsole.h @@ -48,6 +48,8 @@ namespace DX void ReleaseDevice(); void RestoreDevice(ID3D11DeviceContext* context, const wchar_t* fontName); + void SetRotation(DXGI_MODE_ROTATION rotation); + protected: void ProcessString(const wchar_t* str); void IncrementLine(); diff --git a/Kits/DirectXTK/Audio/AudioEngine.cpp b/Kits/DirectXTK/Audio/AudioEngine.cpp index f26e2a6abb674c6d64aa59ed9856c787480278a7..80980b22b7dd544779daf1ad75e697cbc6bfb536 100644 --- a/Kits/DirectXTK/Audio/AudioEngine.cpp +++ b/Kits/DirectXTK/Audio/AudioEngine.cpp @@ -30,11 +30,7 @@ namespace { EngineCallback() { -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) mCriticalError.reset( CreateEventEx( nullptr, nullptr, 0, EVENT_MODIFY_STATE | SYNCHRONIZE ) ); -#else - mCriticalError.reset( CreateEvent( nullptr, FALSE, FALSE, nullptr ) ); -#endif if ( !mCriticalError ) { throw std::exception( "CreateEvent" ); @@ -64,11 +60,7 @@ namespace { VoiceCallback() { -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) mBufferEnd.reset( CreateEventEx( nullptr, nullptr, 0, EVENT_MODIFY_STATE | SYNCHRONIZE ) ); -#else - mBufferEnd.reset( CreateEvent( nullptr, FALSE, FALSE, nullptr ) ); -#endif if ( !mBufferEnd ) { throw std::exception( "CreateEvent" ); @@ -434,7 +426,7 @@ HRESULT AudioEngine::Impl::Reset( const WAVEFORMATEX* wfx, const wchar_t* device if ( mEngineFlags & AudioEngine_Debug ) { - XAUDIO2_DEBUG_CONFIGURATION debug ={0}; + XAUDIO2_DEBUG_CONFIGURATION debug = {}; debug.TraceMask = XAUDIO2_LOG_ERRORS | XAUDIO2_LOG_WARNINGS; debug.BreakMask = XAUDIO2_LOG_ERRORS; xaudio2->SetDebugConfiguration( &debug, nullptr ); @@ -589,7 +581,7 @@ HRESULT AudioEngine::Impl::Reset( const WAVEFORMATEX* wfx, const wchar_t* device // if ( mEngineFlags & AudioEngine_UseMasteringLimiter ) { - FXMASTERINGLIMITER_PARAMETERS params = {0}; + FXMASTERINGLIMITER_PARAMETERS params = {}; params.Release = FXMASTERINGLIMITER_DEFAULT_RELEASE; params.Loudness = FXMASTERINGLIMITER_DEFAULT_LOUDNESS; @@ -605,7 +597,7 @@ HRESULT AudioEngine::Impl::Reset( const WAVEFORMATEX* wfx, const wchar_t* device return hr; } - XAUDIO2_EFFECT_DESCRIPTOR desc = {0}; + XAUDIO2_EFFECT_DESCRIPTOR desc = {}; desc.InitialState = TRUE; desc.OutputChannels = masterChannels; desc.pEffect = mVolumeLimiter.Get(); @@ -911,7 +903,7 @@ void AudioEngine::Impl::SetMasteringLimit( int release, int loudness ) if ( ( loudness < FXMASTERINGLIMITER_MIN_LOUDNESS ) || ( loudness > FXMASTERINGLIMITER_MAX_LOUDNESS ) ) throw std::out_of_range( "AudioEngine::SetMasteringLimit" ); - FXMASTERINGLIMITER_PARAMETERS params = {0}; + FXMASTERINGLIMITER_PARAMETERS params = {}; params.Release = static_cast( release ); params.Loudness = static_cast( loudness ); @@ -922,8 +914,7 @@ void AudioEngine::Impl::SetMasteringLimit( int release, int loudness ) AudioStatistics AudioEngine::Impl::GetStatistics() const { - AudioStatistics stats; - memset( &stats, 0, sizeof(stats) ); + AudioStatistics stats = {}; stats.allocatedVoices = stats.allocatedVoicesOneShot = mOneShots.size() + mVoicePool.size(); stats.allocatedVoicesIdle = mVoicePool.size(); @@ -1025,8 +1016,7 @@ void AudioEngine::Impl::AllocateVoice( const WAVEFORMATEX* wfx, SOUND_EFFECT_INS if (wfx->nChannels == 1 || wfx->nChannels == 2) { // Reset any panning - float matrix[16]; - memset( matrix, 0, sizeof(float) * 16 ); + float matrix[16] = {}; ComputePan( 0.f, wfx->nChannels, matrix ); hr = (*voice)->SetOutputMatrix(nullptr, wfx->nChannels, masterChannels, matrix); @@ -1043,7 +1033,7 @@ void AudioEngine::Impl::AllocateVoice( const WAVEFORMATEX* wfx, SOUND_EFFECT_INS { // makeVoiceKey already constrained the supported wfx formats to those supported for reuse - char buff[64] = {0}; + char buff[64] = {}; auto wfmt = reinterpret_cast( buff ); uint32_t tag = GetFormatTag( wfx ); @@ -1429,8 +1419,7 @@ AudioStatistics AudioEngine::GetStatistics() const WAVEFORMATEXTENSIBLE AudioEngine::GetOutputFormat() const { - WAVEFORMATEXTENSIBLE wfx; - memset( &wfx, 0, sizeof(WAVEFORMATEXTENSIBLE) ); + WAVEFORMATEXTENSIBLE wfx = {}; if ( !pImpl->xaudio2 ) return wfx; diff --git a/Kits/DirectXTK/Audio/DynamicSoundEffectInstance.cpp b/Kits/DirectXTK/Audio/DynamicSoundEffectInstance.cpp index 0135ffecd39169a09b9d4777e3b1b6480a80b922..f497fc1babeadb112b43ebd0db2d06b3c30634ec 100644 --- a/Kits/DirectXTK/Audio/DynamicSoundEffectInstance.cpp +++ b/Kits/DirectXTK/Audio/DynamicSoundEffectInstance.cpp @@ -56,11 +56,7 @@ public: throw std::invalid_argument( "DynamicSoundEffectInstance" ); } -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) mBufferEvent.reset( CreateEventEx( nullptr, nullptr, 0, EVENT_MODIFY_STATE | SYNCHRONIZE ) ); -#else - mBufferEvent.reset( CreateEvent( nullptr, FALSE, FALSE, nullptr ) ); -#endif if ( !mBufferEvent ) { throw std::exception( "CreateEvent" ); @@ -179,9 +175,7 @@ void DynamicSoundEffectInstance::Impl::SubmitBuffer( const uint8_t* pAudioData, throw std::out_of_range( "SubmitBuffer" ); #endif - XAUDIO2_BUFFER buffer; - memset( &buffer, 0, sizeof(buffer) ); - + XAUDIO2_BUFFER buffer = {}; buffer.AudioBytes = static_cast( audioBytes ); buffer.pAudioData = pAudioData; diff --git a/Kits/DirectXTK/Audio/SoundEffect.cpp b/Kits/DirectXTK/Audio/SoundEffect.cpp index bb85a61db5fd232e44c258f7ded86fdd042f11ef..7cfdb8cea01dbdc225cf4ce20be4cb12398206aa 100644 --- a/Kits/DirectXTK/Audio/SoundEffect.cpp +++ b/Kits/DirectXTK/Audio/SoundEffect.cpp @@ -322,8 +322,7 @@ void SoundEffect::Impl::Play( float volume, float pitch, float pan ) HRESULT hr = voice->Start( 0 ); ThrowIfFailed( hr ); - XAUDIO2_BUFFER buffer; - memset( &buffer, 0, sizeof(buffer) ); + XAUDIO2_BUFFER buffer = {}; buffer.AudioBytes = mAudioBytes; buffer.pAudioData = mStartAudio; buffer.Flags = XAUDIO2_END_OF_STREAM; @@ -334,9 +333,7 @@ void SoundEffect::Impl::Play( float volume, float pitch, float pan ) uint32_t tag = GetFormatTag( mWaveFormat ); if ( tag == WAVE_FORMAT_WMAUDIO2 || tag == WAVE_FORMAT_WMAUDIO3 ) { - XAUDIO2_BUFFER_WMA wmaBuffer; - memset( &wmaBuffer, 0, sizeof(wmaBuffer) ); - + XAUDIO2_BUFFER_WMA wmaBuffer = {}; wmaBuffer.PacketCount = mSeekCount; wmaBuffer.pDecodedPacketCumulativeBytes = mSeekTable; diff --git a/Kits/DirectXTK/Audio/WAVFileReader.cpp b/Kits/DirectXTK/Audio/WAVFileReader.cpp index ebd91af815c808850d37dac772edea9451c72b31..4ecff8e2727b9699fb250f57629fa9fff0e71b01 100644 --- a/Kits/DirectXTK/Audio/WAVFileReader.cpp +++ b/Kits/DirectXTK/Audio/WAVFileReader.cpp @@ -496,33 +496,26 @@ static HRESULT LoadAudioFromFile( _In_z_ const wchar_t* szFileName, _Inout_ std: } // Get the file size - LARGE_INTEGER FileSize = { 0 }; - -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) FILE_STANDARD_INFO fileInfo; if ( !GetFileInformationByHandleEx( hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo) ) ) { return HRESULT_FROM_WIN32( GetLastError() ); } - FileSize = fileInfo.EndOfFile; -#else - GetFileSizeEx( hFile.get(), &FileSize ); -#endif // File is too big for 32-bit allocation, so reject read - if (FileSize.HighPart > 0) + if (fileInfo.EndOfFile.HighPart > 0) { return E_FAIL; } // Need at least enough data to have a valid minimal WAV file - if (FileSize.LowPart < ( sizeof(RIFFChunk)*2 + sizeof(DWORD) + sizeof(WAVEFORMAT) ) ) + if (fileInfo.EndOfFile.LowPart < ( sizeof(RIFFChunk)*2 + sizeof(DWORD) + sizeof(WAVEFORMAT) ) ) { return E_FAIL; } // create enough space for the file data - wavData.reset( new (std::nothrow) uint8_t[ FileSize.LowPart ] ); + wavData.reset( new (std::nothrow) uint8_t[ fileInfo.EndOfFile.LowPart ] ); if (!wavData) { return E_OUTOFMEMORY; @@ -531,7 +524,7 @@ static HRESULT LoadAudioFromFile( _In_z_ const wchar_t* szFileName, _Inout_ std: // read the data in if (!ReadFile( hFile.get(), wavData.get(), - FileSize.LowPart, + fileInfo.EndOfFile.LowPart, bytesRead, nullptr )) @@ -539,7 +532,7 @@ static HRESULT LoadAudioFromFile( _In_z_ const wchar_t* szFileName, _Inout_ std: return HRESULT_FROM_WIN32( GetLastError() ); } - return (*bytesRead < FileSize.LowPart) ? E_FAIL : S_OK; + return (*bytesRead < fileInfo.EndOfFile.LowPart) ? E_FAIL : S_OK; } diff --git a/Kits/DirectXTK/Audio/WaveBank.cpp b/Kits/DirectXTK/Audio/WaveBank.cpp index d67fd4e88cc4bc4183f5860f93dfbffffbc04383..644177012052ed147a58389a9a012d382137a9f8 100644 --- a/Kits/DirectXTK/Audio/WaveBank.cpp +++ b/Kits/DirectXTK/Audio/WaveBank.cpp @@ -206,9 +206,7 @@ void WaveBank::Impl::Play( int index, float volume, float pitch, float pan ) hr = voice->Start( 0 ); ThrowIfFailed( hr ); - XAUDIO2_BUFFER buffer; - memset( &buffer, 0, sizeof(buffer) ); - + XAUDIO2_BUFFER buffer = {}; hr = mReader.GetWaveData( index, &buffer.pAudioData, buffer.AudioBytes ); ThrowIfFailed( hr ); @@ -221,8 +219,7 @@ void WaveBank::Impl::Play( int index, float volume, float pitch, float pan ) #if defined(_XBOX_ONE) || (_WIN32_WINNT < _WIN32_WINNT_WIN8) || (_WIN32_WINNT >= _WIN32_WINNT_WIN10) - XAUDIO2_BUFFER_WMA wmaBuffer; - memset( &wmaBuffer, 0, sizeof(wmaBuffer) ); + XAUDIO2_BUFFER_WMA wmaBuffer = {}; uint32_t tag; hr = mReader.GetSeekTable( index, &wmaBuffer.pDecodedPacketCumulativeBytes, wmaBuffer.PacketCount, tag ); diff --git a/Kits/DirectXTK/Audio/WaveBankReader.cpp b/Kits/DirectXTK/Audio/WaveBankReader.cpp index d52ec67e54937a37cc394fa1c35b52633c34afe8..924325c746f342a5dbf1e63e0938f3d5b22daea4 100644 --- a/Kits/DirectXTK/Audio/WaveBankReader.cpp +++ b/Kits/DirectXTK/Audio/WaveBankReader.cpp @@ -504,12 +504,7 @@ HRESULT WaveBankReader::Impl::Open( const wchar_t* szFileName ) m_prepared = false; -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) m_event.reset( CreateEventEx( nullptr, nullptr, CREATE_EVENT_MANUAL_RESET, EVENT_MODIFY_STATE | SYNCHRONIZE ) ); -#else - m_event.reset( CreateEvent( nullptr, TRUE, FALSE, nullptr ) ); -#endif - if ( !m_event ) { return HRESULT_FROM_WIN32( GetLastError() ); @@ -540,8 +535,7 @@ HRESULT WaveBankReader::Impl::Open( const wchar_t* szFileName ) } // Read and verify header - OVERLAPPED request; - memset( &request, 0, sizeof(request) ); + OVERLAPPED request = {}; request.hEvent = m_event.get(); bool wait = false; @@ -701,7 +695,7 @@ HRESULT WaveBankReader::Impl::Open( const wchar_t* szFileName ) { DWORD n = m_data.dwEntryNameElementSize * j; - char name[ 64 ] = {0}; + char name[ 64 ] = {}; strncpy_s( name, &temp[ n ], 64 ); m_names[ name ] = j; diff --git a/Kits/DirectXTK/DirectXTK_Windows10.vcxproj b/Kits/DirectXTK/DirectXTK_Windows10.vcxproj index 9b5d5f5fc6c25a282ab5596c197fbb98fe3056a5..647af28a8766fb85c285c054bf820e7e7fe370e6 100644 --- a/Kits/DirectXTK/DirectXTK_Windows10.vcxproj +++ b/Kits/DirectXTK/DirectXTK_Windows10.vcxproj @@ -1,4 +1,4 @@ - + @@ -465,4 +465,4 @@ - + \ No newline at end of file diff --git a/Kits/DirectXTK/Inc/DDSTextureLoader.h b/Kits/DirectXTK/Inc/DDSTextureLoader.h index e5f8ce7c2cfa48aee918429bbe0257b6e3a1b354..0c4dd9936ac274109895462735568cd2155e375a 100644 --- a/Kits/DirectXTK/Inc/DDSTextureLoader.h +++ b/Kits/DirectXTK/Inc/DDSTextureLoader.h @@ -1,7 +1,7 @@ //-------------------------------------------------------------------------------------- // File: DDSTextureLoader.h // -// Functions for loading a DDS texture and creating a Direct3D 11 runtime resource for it +// Functions for loading a DDS texture and creating a Direct3D runtime resource for it // // Note these functions are useful as a light-weight runtime loader for DDS files. For // a full-featured DDS file reader, writer, and texture processing pipeline see @@ -41,118 +41,118 @@ namespace DirectX }; // Standard version - HRESULT __cdecl CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, - _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, - _In_ size_t ddsDataSize, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + HRESULT __cdecl CreateDDSTextureFromMemory( + _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); - HRESULT __cdecl CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, - _In_z_ const wchar_t* szFileName, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + HRESULT __cdecl CreateDDSTextureFromFile( + _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); // Standard version with optional auto-gen mipmap support + HRESULT __cdecl CreateDDSTextureFromMemory( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateDDSTextureFromMemory( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, - _In_ size_t ddsDataSize, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); + HRESULT __cdecl CreateDDSTextureFromFile( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateDDSTextureFromFile( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_z_ const wchar_t* szFileName, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + _In_z_ const wchar_t* szFileName, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); // Extended version - HRESULT __cdecl CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, - _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, - _In_ size_t ddsDataSize, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + HRESULT __cdecl CreateDDSTextureFromMemoryEx( + _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); - HRESULT __cdecl CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, - _In_z_ const wchar_t* szFileName, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + HRESULT __cdecl CreateDDSTextureFromFileEx( + _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); // Extended version with optional auto-gen mipmap support + HRESULT __cdecl CreateDDSTextureFromMemoryEx( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateDDSTextureFromMemoryEx( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, - _In_ size_t ddsDataSize, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); + HRESULT __cdecl CreateDDSTextureFromFileEx( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateDDSTextureFromFileEx( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_z_ const wchar_t* szFileName, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView, - _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr - ); + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); } \ No newline at end of file diff --git a/Kits/DirectXTK/Inc/DirectXHelpers.h b/Kits/DirectXTK/Inc/DirectXHelpers.h index 468ae461a7c492c22dd0d0d21ecfd8a103687d16..998d7f7e140affff3146f4d4227feccc9049391f 100644 --- a/Kits/DirectXTK/Inc/DirectXHelpers.h +++ b/Kits/DirectXTK/Inc/DirectXHelpers.h @@ -56,7 +56,7 @@ namespace DirectX { - // simliar to std::lock_guard for exception-safe Direct3D 11 resource locking + // simliar to std::lock_guard for exception-safe Direct3D resource locking class MapGuard : public D3D11_MAPPED_SUBRESOURCE { public: @@ -113,7 +113,7 @@ namespace DirectX { #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if defined(_XBOX_ONE) && defined(_TITLE) - WCHAR wname[MAX_PATH]; + wchar_t wname[MAX_PATH]; int result = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, name, TNameLength, wname, MAX_PATH ); if ( result > 0 ) { diff --git a/Kits/DirectXTK/Inc/Effects.h b/Kits/DirectXTK/Inc/Effects.h index 32b723e74f2ee1e7e9384f61a48c0515d8427636..2ff287133551372b713364507a4ce37fcc3fcf10 100644 --- a/Kits/DirectXTK/Inc/Effects.h +++ b/Kits/DirectXTK/Inc/Effects.h @@ -489,7 +489,7 @@ namespace DirectX struct EffectInfo { - const WCHAR* name; + const wchar_t* name; bool perVertexColor; bool enableSkinning; bool enableDualTexture; @@ -499,15 +499,15 @@ namespace DirectX DirectX::XMFLOAT3 diffuseColor; DirectX::XMFLOAT3 specularColor; DirectX::XMFLOAT3 emissiveColor; - const WCHAR* texture; - const WCHAR* texture2; + const wchar_t* texture; + const wchar_t* texture2; EffectInfo() { memset( this, 0, sizeof(EffectInfo) ); }; }; virtual std::shared_ptr __cdecl CreateEffect( _In_ const EffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ) = 0; - virtual void __cdecl CreateTexture( _In_z_ const WCHAR* name, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ) = 0; + virtual void __cdecl CreateTexture( _In_z_ const wchar_t* name, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ) = 0; }; @@ -526,14 +526,14 @@ namespace DirectX // IEffectFactory methods. virtual std::shared_ptr __cdecl CreateEffect( _In_ const EffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ) override; - virtual void __cdecl CreateTexture( _In_z_ const WCHAR* name, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ) override; + virtual void __cdecl CreateTexture( _In_z_ const wchar_t* name, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ) override; // Settings. void __cdecl ReleaseCache(); void __cdecl SetSharing( bool enabled ); - void __cdecl SetDirectory( _In_opt_z_ const WCHAR* path ); + void __cdecl SetDirectory( _In_opt_z_ const wchar_t* path ); private: // Private implementation. @@ -558,27 +558,27 @@ namespace DirectX // IEffectFactory methods. virtual std::shared_ptr __cdecl CreateEffect( _In_ const EffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ) override; - virtual void __cdecl CreateTexture( _In_z_ const WCHAR* name, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ) override; + virtual void __cdecl CreateTexture( _In_z_ const wchar_t* name, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ) override; // DGSL methods. struct DGSLEffectInfo : public EffectInfo { - const WCHAR* textures[6]; - const WCHAR* pixelShader; + const wchar_t* textures[6]; + const wchar_t* pixelShader; DGSLEffectInfo() { memset( this, 0, sizeof(DGSLEffectInfo) ); }; }; virtual std::shared_ptr __cdecl CreateDGSLEffect( _In_ const DGSLEffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ); - virtual void __cdecl CreatePixelShader( _In_z_ const WCHAR* shader, _Outptr_ ID3D11PixelShader** pixelShader ); + virtual void __cdecl CreatePixelShader( _In_z_ const wchar_t* shader, _Outptr_ ID3D11PixelShader** pixelShader ); // Settings. void __cdecl ReleaseCache(); void __cdecl SetSharing( bool enabled ); - void __cdecl SetDirectory( _In_opt_z_ const WCHAR* path ); + void __cdecl SetDirectory( _In_opt_z_ const wchar_t* path ); private: // Private implementation. diff --git a/Kits/DirectXTK/Inc/PrimitiveBatch.h b/Kits/DirectXTK/Inc/PrimitiveBatch.h index 5bc469c9fbfa3cc1d9b069a1647328d10e84a035..4632aefae6dfbfcb89a35d293d71264562a304d7 100644 --- a/Kits/DirectXTK/Inc/PrimitiveBatch.h +++ b/Kits/DirectXTK/Inc/PrimitiveBatch.h @@ -66,7 +66,7 @@ namespace DirectX static const size_t DefaultBatchSize = 2048; public: - PrimitiveBatch(_In_ ID3D11DeviceContext* deviceContext, size_t maxIndices = DefaultBatchSize * 3, size_t maxVertices = DefaultBatchSize) + explicit PrimitiveBatch(_In_ ID3D11DeviceContext* deviceContext, size_t maxIndices = DefaultBatchSize * 3, size_t maxVertices = DefaultBatchSize) : PrimitiveBatchBase(deviceContext, maxIndices, maxVertices, sizeof(TVertex)) { } diff --git a/Kits/DirectXTK/Inc/ScreenGrab.h b/Kits/DirectXTK/Inc/ScreenGrab.h index 4d8c83c2ccbaa5f4c8feb08e8ca4aa85e757522c..d4058e5434efb4bbbfbb5ed604ecdb02fa0a2bd4 100644 --- a/Kits/DirectXTK/Inc/ScreenGrab.h +++ b/Kits/DirectXTK/Inc/ScreenGrab.h @@ -2,7 +2,7 @@ // File: ScreenGrab.h // // Function for capturing a 2D texture and saving it to a file (aka a 'screenshot' -// when used on a Direct3D 11 Render Target). +// when used on a Direct3D Render Target). // // Note these functions are useful as a light-weight runtime screen grabber. For // full-featured texture capture, DDS writer, and texture processing pipeline, @@ -35,18 +35,16 @@ namespace DirectX { - HRESULT __cdecl SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext, - _In_ ID3D11Resource* pSource, - _In_z_ LPCWSTR fileName ); - -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) - - HRESULT __cdecl SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, - _In_ ID3D11Resource* pSource, - _In_ REFGUID guidContainerFormat, - _In_z_ LPCWSTR fileName, - _In_opt_ const GUID* targetFormat = nullptr, - _In_opt_ std::function setCustomProps = nullptr ); - -#endif + HRESULT __cdecl SaveDDSTextureToFile( + _In_ ID3D11DeviceContext* pContext, + _In_ ID3D11Resource* pSource, + _In_z_ LPCWSTR fileName); + + HRESULT __cdecl SaveWICTextureToFile( + _In_ ID3D11DeviceContext* pContext, + _In_ ID3D11Resource* pSource, + _In_ REFGUID guidContainerFormat, + _In_z_ LPCWSTR fileName, + _In_opt_ const GUID* targetFormat = nullptr, + _In_opt_ std::function setCustomProps = nullptr); } \ No newline at end of file diff --git a/Kits/DirectXTK/Inc/VertexTypes.h b/Kits/DirectXTK/Inc/VertexTypes.h index ec895713a925d2b53ce3d55ed049c3e5aa2159ca..fcb4b9c1725c3728f9897bc9beac417caf59a2ad 100644 --- a/Kits/DirectXTK/Inc/VertexTypes.h +++ b/Kits/DirectXTK/Inc/VertexTypes.h @@ -24,6 +24,27 @@ namespace DirectX { + // Vertex struct holding position information. + struct VertexPosition + { + VertexPosition() = default; + + VertexPosition(XMFLOAT3 const& position) + : position(position) + { } + + VertexPosition(FXMVECTOR position) + { + XMStoreFloat3(&this->position, position); + } + + XMFLOAT3 position; + + static const int InputElementCount = 1; + static const D3D11_INPUT_ELEMENT_DESC InputElements[InputElementCount]; + }; + + // Vertex struct holding position and color information. struct VertexPositionColor { @@ -72,6 +93,35 @@ namespace DirectX }; + // Vertex struct holding position and dual texture mapping information. + struct VertexPositionDualTexture + { + VertexPositionDualTexture() = default; + + VertexPositionDualTexture(XMFLOAT3 const& position, XMFLOAT2 const& textureCoordinate0, XMFLOAT2 const& textureCoordinate1) + : position(position), + textureCoordinate0(textureCoordinate0), + textureCoordinate1(textureCoordinate1) + { } + + VertexPositionDualTexture(FXMVECTOR position, + FXMVECTOR textureCoordinate0, + FXMVECTOR textureCoordinate1) + { + XMStoreFloat3(&this->position, position); + XMStoreFloat2(&this->textureCoordinate0, textureCoordinate0); + XMStoreFloat2(&this->textureCoordinate1, textureCoordinate1); + } + + XMFLOAT3 position; + XMFLOAT2 textureCoordinate0; + XMFLOAT2 textureCoordinate1; + + static const int InputElementCount = 3; + static const D3D11_INPUT_ELEMENT_DESC InputElements[InputElementCount]; + }; + + // Vertex struct holding position and normal vector. struct VertexPositionNormal { diff --git a/Kits/DirectXTK/Inc/WICTextureLoader.h b/Kits/DirectXTK/Inc/WICTextureLoader.h index 94ada84835b8e347461148c95d3d90036e8b7d63..5712d54948b7e4b418835245dcc4d11a9bd4ed3f 100644 --- a/Kits/DirectXTK/Inc/WICTextureLoader.h +++ b/Kits/DirectXTK/Inc/WICTextureLoader.h @@ -1,7 +1,7 @@ //-------------------------------------------------------------------------------------- // File: WICTextureLoader.h // -// Function for loading a WIC image and creating a Direct3D 11 runtime texture for it +// Function for loading a WIC image and creating a Direct3D runtime texture for it // (auto-generating mipmaps if possible) // // Note: Assumes application has already called CoInitializeEx @@ -27,10 +27,6 @@ #pragma once -#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) && (_WIN32_WINNT <= _WIN32_WINNT_WIN8) -#error WIC is not supported on Windows Phone 8.0 -#endif - #if defined(_XBOX_ONE) && defined(_TITLE) #include #else @@ -43,110 +39,110 @@ namespace DirectX { // Standard version - HRESULT __cdecl CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, - _In_reads_bytes_(wicDataSize) const uint8_t* wicData, - _In_ size_t wicDataSize, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0 - ); + HRESULT __cdecl CreateWICTextureFromMemory( + _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0); - HRESULT __cdecl CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, - _In_z_ const wchar_t* szFileName, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0 - ); + HRESULT __cdecl CreateWICTextureFromFile( + _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0); // Standard version with optional auto-gen mipmap support + HRESULT __cdecl CreateWICTextureFromMemory( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateWICTextureFromMemory( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_reads_bytes_(wicDataSize) const uint8_t* wicData, - _In_ size_t wicDataSize, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0 - ); + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0); + HRESULT __cdecl CreateWICTextureFromFile( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateWICTextureFromFile( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_z_ const wchar_t* szFileName, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView, - _In_ size_t maxsize = 0 - ); + _In_z_ const wchar_t* szFileName, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, + _In_ size_t maxsize = 0); // Extended version - HRESULT __cdecl CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, - _In_reads_bytes_(wicDataSize) const uint8_t* wicData, - _In_ size_t wicDataSize, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView - ); + HRESULT __cdecl CreateWICTextureFromMemoryEx( + _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView); - HRESULT __cdecl CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, - _In_z_ const wchar_t* szFileName, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView - ); + HRESULT __cdecl CreateWICTextureFromFileEx( + _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView); // Extended version with optional auto-gen mipmap support - #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateWICTextureFromMemoryEx( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + HRESULT __cdecl CreateWICTextureFromMemoryEx( +#if defined(_XBOX_ONE) && defined(_TITLE) + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_reads_bytes_(wicDataSize) const uint8_t* wicData, - _In_ size_t wicDataSize, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView - ); + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView); + HRESULT __cdecl CreateWICTextureFromFileEx( #if defined(_XBOX_ONE) && defined(_TITLE) - HRESULT __cdecl CreateWICTextureFromFileEx( _In_ ID3D11DeviceX* d3dDevice, - _In_opt_ ID3D11DeviceContextX* d3dContext, + _In_ ID3D11DeviceX* d3dDevice, + _In_opt_ ID3D11DeviceContextX* d3dContext, #else - HRESULT __cdecl CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #endif - _In_z_ const wchar_t* szFileName, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView - ); + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView); } \ No newline at end of file diff --git a/Kits/DirectXTK/Readme.txt b/Kits/DirectXTK/Readme.txt index 6eb4c279ea100942059ce7330cf26b995744f42e..bbf8bc2cc6c9a407f2938ce3c023a719dd1cf6c5 100644 --- a/Kits/DirectXTK/Readme.txt +++ b/Kits/DirectXTK/Readme.txt @@ -4,7 +4,7 @@ DirectXTK - the DirectX Tool Kit Copyright (c) Microsoft Corporation. All rights reserved. -April 26, 2016 +May 31, 2016 This package contains the "DirectX Tool Kit", a collection of helper classes for writing Direct3D 11 C++ code for Universal Windows Platform (UWP) apps for Windows 10, @@ -74,6 +74,12 @@ Note: Xbox One exclusive apps developers using the Xbox One XDK need to generate RELEASE HISTORY --------------- +May 31, 2016 + Added VertexPosition and VertexPositionDualTexture to VertexTypes + Xbox One platform fix for PrimitiveBatch + CompileShader script updated to build external pdbs + Code cleanup + April 26, 2016 Added Rectangle class to SimpleMath Fix for SDKMESH loader when loading models with 'extra' texture coordinate sets diff --git a/Kits/DirectXTK/Src/BinaryReader.cpp b/Kits/DirectXTK/Src/BinaryReader.cpp index 1d84ab98c1ac05f4cf7b80df9871360723d906fe..c84e1a42eebef1f2976ce9c5eb62d3c5d2d79fb8 100644 --- a/Kits/DirectXTK/Src/BinaryReader.cpp +++ b/Kits/DirectXTK/Src/BinaryReader.cpp @@ -57,27 +57,18 @@ HRESULT BinaryReader::ReadEntireFile(_In_z_ wchar_t const* fileName, _Inout_ std return HRESULT_FROM_WIN32(GetLastError()); // Get the file size. - LARGE_INTEGER fileSize = { 0 }; - -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) FILE_STANDARD_INFO fileInfo; - if (!GetFileInformationByHandleEx(hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo))) { return HRESULT_FROM_WIN32(GetLastError()); } - fileSize = fileInfo.EndOfFile; -#else - GetFileSizeEx(hFile.get(), &fileSize); -#endif - // File is too big for 32-bit allocation, so reject read. - if (fileSize.HighPart > 0) + if (fileInfo.EndOfFile.HighPart > 0) return E_FAIL; // Create enough space for the file data. - data.reset(new uint8_t[fileSize.LowPart]); + data.reset(new uint8_t[fileInfo.EndOfFile.LowPart]); if (!data) return E_OUTOFMEMORY; @@ -85,12 +76,12 @@ HRESULT BinaryReader::ReadEntireFile(_In_z_ wchar_t const* fileName, _Inout_ std // Read the data in. DWORD bytesRead = 0; - if (!ReadFile(hFile.get(), data.get(), fileSize.LowPart, &bytesRead, nullptr)) + if (!ReadFile(hFile.get(), data.get(), fileInfo.EndOfFile.LowPart, &bytesRead, nullptr)) { return HRESULT_FROM_WIN32(GetLastError()); } - if (bytesRead < fileSize.LowPart) + if (bytesRead < fileInfo.EndOfFile.LowPart) return E_FAIL; *dataSize = bytesRead; diff --git a/Kits/DirectXTK/Src/CommonStates.cpp b/Kits/DirectXTK/Src/CommonStates.cpp index 8259e4243e36bd366a4dee190eb31f433b2bb285..63d3515f98f59604dfc9f29b7c442fb2acd688e6 100644 --- a/Kits/DirectXTK/Src/CommonStates.cpp +++ b/Kits/DirectXTK/Src/CommonStates.cpp @@ -71,8 +71,7 @@ SharedResourcePool CommonStates::Impl::instan // Helper for creating blend state objects. HRESULT CommonStates::Impl::CreateBlendState(D3D11_BLEND srcBlend, D3D11_BLEND destBlend, _Out_ ID3D11BlendState** pResult) { - D3D11_BLEND_DESC desc; - ZeroMemory(&desc, sizeof(desc)); + D3D11_BLEND_DESC desc = {}; desc.RenderTarget[0].BlendEnable = (srcBlend != D3D11_BLEND_ONE) || (destBlend != D3D11_BLEND_ZERO); @@ -95,8 +94,7 @@ HRESULT CommonStates::Impl::CreateBlendState(D3D11_BLEND srcBlend, D3D11_BLEND d // Helper for creating depth stencil state objects. HRESULT CommonStates::Impl::CreateDepthStencilState(bool enable, bool writeEnable, _Out_ ID3D11DepthStencilState** pResult) { - D3D11_DEPTH_STENCIL_DESC desc; - ZeroMemory(&desc, sizeof(desc)); + D3D11_DEPTH_STENCIL_DESC desc = {}; desc.DepthEnable = enable; desc.DepthWriteMask = writeEnable ? D3D11_DEPTH_WRITE_MASK_ALL : D3D11_DEPTH_WRITE_MASK_ZERO; @@ -125,8 +123,7 @@ HRESULT CommonStates::Impl::CreateDepthStencilState(bool enable, bool writeEnabl // Helper for creating rasterizer state objects. HRESULT CommonStates::Impl::CreateRasterizerState(D3D11_CULL_MODE cullMode, D3D11_FILL_MODE fillMode, _Out_ ID3D11RasterizerState** pResult) { - D3D11_RASTERIZER_DESC desc; - ZeroMemory(&desc, sizeof(desc)); + D3D11_RASTERIZER_DESC desc = {}; desc.CullMode = cullMode; desc.FillMode = fillMode; @@ -145,8 +142,7 @@ HRESULT CommonStates::Impl::CreateRasterizerState(D3D11_CULL_MODE cullMode, D3D1 // Helper for creating sampler state objects. HRESULT CommonStates::Impl::CreateSamplerState(D3D11_FILTER filter, D3D11_TEXTURE_ADDRESS_MODE addressMode, _Out_ ID3D11SamplerState** pResult) { - D3D11_SAMPLER_DESC desc; - ZeroMemory(&desc, sizeof(desc)); + D3D11_SAMPLER_DESC desc = {}; desc.Filter = filter; diff --git a/Kits/DirectXTK/Src/ConstantBuffer.h b/Kits/DirectXTK/Src/ConstantBuffer.h index bd1a3c4d3a8f8cb5859c767faa5db5879d7c5d79..59914c080945ebd7010eb910fd105087b27e3185 100644 --- a/Kits/DirectXTK/Src/ConstantBuffer.h +++ b/Kits/DirectXTK/Src/ConstantBuffer.h @@ -38,7 +38,7 @@ namespace DirectX #if defined(_XBOX_ONE) && defined(_TITLE) void Create(_In_ ID3D11Device* device) { - D3D11_BUFFER_DESC desc = { 0 }; + D3D11_BUFFER_DESC desc = {}; desc.ByteWidth = sizeof(T); desc.Usage = D3D11_USAGE_DEFAULT; @@ -69,7 +69,7 @@ namespace DirectX #else void Create(_In_ ID3D11Device* device) { - D3D11_BUFFER_DESC desc = { 0 }; + D3D11_BUFFER_DESC desc = {}; desc.ByteWidth = sizeof(T); desc.Usage = D3D11_USAGE_DYNAMIC; diff --git a/Kits/DirectXTK/Src/DDSTextureLoader.cpp b/Kits/DirectXTK/Src/DDSTextureLoader.cpp index 76ea2d5eed074c2e2558d69dae3c68d8f52f8287..9acdd58692066eb70c713292d405dc87150682a0 100644 --- a/Kits/DirectXTK/Src/DDSTextureLoader.cpp +++ b/Kits/DirectXTK/Src/DDSTextureLoader.cpp @@ -1,7 +1,7 @@ //-------------------------------------------------------------------------------------- // File: DDSTextureLoader.cpp // -// Functions for loading a DDS texture and creating a Direct3D 11 runtime resource for it +// Functions for loading a DDS texture and creating a Direct3D runtime resource for it // // Note these functions are useful as a light-weight runtime loader for DDS files. For // a full-featured DDS file reader, writer, and texture processing pipeline see @@ -28,1507 +28,1493 @@ using namespace DirectX; -//-------------------------------------------------------------------------------------- -static HRESULT LoadTextureDataFromFile( _In_z_ const wchar_t* fileName, - std::unique_ptr& ddsData, - DDS_HEADER** header, - uint8_t** bitData, - size_t* bitSize - ) +namespace { - if (!header || !bitData || !bitSize) - { - return E_POINTER; - } + //-------------------------------------------------------------------------------------- + HRESULT LoadTextureDataFromFile(_In_z_ const wchar_t* fileName, + std::unique_ptr& ddsData, + DDS_HEADER** header, + uint8_t** bitData, + size_t* bitSize + ) + { + if (!header || !bitData || !bitSize) + { + return E_POINTER; + } - // open the file + // open the file #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) - ScopedHandle hFile( safe_handle( CreateFile2( fileName, - GENERIC_READ, - FILE_SHARE_READ, - OPEN_EXISTING, - nullptr ) ) ); + ScopedHandle hFile(safe_handle(CreateFile2(fileName, + GENERIC_READ, + FILE_SHARE_READ, + OPEN_EXISTING, + nullptr))); #else - ScopedHandle hFile( safe_handle( CreateFileW( fileName, - GENERIC_READ, - FILE_SHARE_READ, - nullptr, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - nullptr ) ) ); + ScopedHandle hFile(safe_handle(CreateFileW(fileName, + GENERIC_READ, + FILE_SHARE_READ, + nullptr, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + nullptr))); #endif - if ( !hFile ) - { - return HRESULT_FROM_WIN32( GetLastError() ); - } - - // Get the file size - LARGE_INTEGER FileSize = { 0 }; + if (!hFile) + { + return HRESULT_FROM_WIN32(GetLastError()); + } -#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA) - FILE_STANDARD_INFO fileInfo; - if ( !GetFileInformationByHandleEx( hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo) ) ) - { - return HRESULT_FROM_WIN32( GetLastError() ); - } - FileSize = fileInfo.EndOfFile; -#else - GetFileSizeEx( hFile.get(), &FileSize ); -#endif + // Get the file size + FILE_STANDARD_INFO fileInfo; + if (!GetFileInformationByHandleEx(hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo))) + { + return HRESULT_FROM_WIN32(GetLastError()); + } - // File is too big for 32-bit allocation, so reject read - if (FileSize.HighPart > 0) - { - return E_FAIL; - } + // File is too big for 32-bit allocation, so reject read + if (fileInfo.EndOfFile.HighPart > 0) + { + return E_FAIL; + } - // Need at least enough data to fill the header and magic number to be a valid DDS - if (FileSize.LowPart < ( sizeof(DDS_HEADER) + sizeof(uint32_t) ) ) - { - return E_FAIL; - } + // Need at least enough data to fill the header and magic number to be a valid DDS + if (fileInfo.EndOfFile.LowPart < (sizeof(DDS_HEADER) + sizeof(uint32_t))) + { + return E_FAIL; + } - // create enough space for the file data - ddsData.reset( new (std::nothrow) uint8_t[ FileSize.LowPart ] ); - if (!ddsData) - { - return E_OUTOFMEMORY; - } + // create enough space for the file data + ddsData.reset(new (std::nothrow) uint8_t[ fileInfo.EndOfFile.LowPart ]); + if (!ddsData) + { + return E_OUTOFMEMORY; + } - // read the data in - DWORD BytesRead = 0; - if (!ReadFile( hFile.get(), - ddsData.get(), - FileSize.LowPart, - &BytesRead, - nullptr - )) - { - return HRESULT_FROM_WIN32( GetLastError() ); - } + // read the data in + DWORD BytesRead = 0; + if (!ReadFile(hFile.get(), + ddsData.get(), + fileInfo.EndOfFile.LowPart, + &BytesRead, + nullptr + )) + { + return HRESULT_FROM_WIN32(GetLastError()); + } - if (BytesRead < FileSize.LowPart) - { - return E_FAIL; - } + if (BytesRead < fileInfo.EndOfFile.LowPart) + { + return E_FAIL; + } - // DDS files always start with the same magic number ("DDS ") - uint32_t dwMagicNumber = *( const uint32_t* )( ddsData.get() ); - if (dwMagicNumber != DDS_MAGIC) - { - return E_FAIL; - } + // DDS files always start with the same magic number ("DDS ") + uint32_t dwMagicNumber = *(const uint32_t*)(ddsData.get()); + if (dwMagicNumber != DDS_MAGIC) + { + return E_FAIL; + } - auto hdr = reinterpret_cast( ddsData.get() + sizeof( uint32_t ) ); + auto hdr = reinterpret_cast(ddsData.get() + sizeof(uint32_t)); - // Verify header to validate DDS file - if (hdr->size != sizeof(DDS_HEADER) || - hdr->ddspf.size != sizeof(DDS_PIXELFORMAT)) - { - return E_FAIL; - } - - // Check for DX10 extension - bool bDXT10Header = false; - if ((hdr->ddspf.flags & DDS_FOURCC) && - (MAKEFOURCC( 'D', 'X', '1', '0' ) == hdr->ddspf.fourCC)) - { - // Must be long enough for both headers and magic value - if (FileSize.LowPart < ( sizeof(DDS_HEADER) + sizeof(uint32_t) + sizeof(DDS_HEADER_DXT10) ) ) + // Verify header to validate DDS file + if (hdr->size != sizeof(DDS_HEADER) || + hdr->ddspf.size != sizeof(DDS_PIXELFORMAT)) { return E_FAIL; } - bDXT10Header = true; - } + // Check for DX10 extension + bool bDXT10Header = false; + if ((hdr->ddspf.flags & DDS_FOURCC) && + (MAKEFOURCC('D', 'X', '1', '0') == hdr->ddspf.fourCC)) + { + // Must be long enough for both headers and magic value + if (fileInfo.EndOfFile.LowPart < (sizeof(DDS_HEADER) + sizeof(uint32_t) + sizeof(DDS_HEADER_DXT10))) + { + return E_FAIL; + } - // setup the pointers in the process request - *header = hdr; - ptrdiff_t offset = sizeof( uint32_t ) + sizeof( DDS_HEADER ) - + (bDXT10Header ? sizeof( DDS_HEADER_DXT10 ) : 0); - *bitData = ddsData.get() + offset; - *bitSize = FileSize.LowPart - offset; + bDXT10Header = true; + } - return S_OK; -} + // setup the pointers in the process request + *header = hdr; + ptrdiff_t offset = sizeof(uint32_t) + sizeof(DDS_HEADER) + + (bDXT10Header ? sizeof(DDS_HEADER_DXT10) : 0); + *bitData = ddsData.get() + offset; + *bitSize = fileInfo.EndOfFile.LowPart - offset; + return S_OK; + } -//-------------------------------------------------------------------------------------- -// Return the BPP for a particular format -//-------------------------------------------------------------------------------------- -static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) -{ - switch( fmt ) + //-------------------------------------------------------------------------------------- + // Return the BPP for a particular format + //-------------------------------------------------------------------------------------- + size_t BitsPerPixel(_In_ DXGI_FORMAT fmt) { - case DXGI_FORMAT_R32G32B32A32_TYPELESS: - case DXGI_FORMAT_R32G32B32A32_FLOAT: - case DXGI_FORMAT_R32G32B32A32_UINT: - case DXGI_FORMAT_R32G32B32A32_SINT: - return 128; - - case DXGI_FORMAT_R32G32B32_TYPELESS: - case DXGI_FORMAT_R32G32B32_FLOAT: - case DXGI_FORMAT_R32G32B32_UINT: - case DXGI_FORMAT_R32G32B32_SINT: - return 96; - - case DXGI_FORMAT_R16G16B16A16_TYPELESS: - case DXGI_FORMAT_R16G16B16A16_FLOAT: - case DXGI_FORMAT_R16G16B16A16_UNORM: - case DXGI_FORMAT_R16G16B16A16_UINT: - case DXGI_FORMAT_R16G16B16A16_SNORM: - case DXGI_FORMAT_R16G16B16A16_SINT: - case DXGI_FORMAT_R32G32_TYPELESS: - case DXGI_FORMAT_R32G32_FLOAT: - case DXGI_FORMAT_R32G32_UINT: - case DXGI_FORMAT_R32G32_SINT: - case DXGI_FORMAT_R32G8X24_TYPELESS: - case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: - case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: - case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: - case DXGI_FORMAT_Y416: - case DXGI_FORMAT_Y210: - case DXGI_FORMAT_Y216: - return 64; - - case DXGI_FORMAT_R10G10B10A2_TYPELESS: - case DXGI_FORMAT_R10G10B10A2_UNORM: - case DXGI_FORMAT_R10G10B10A2_UINT: - case DXGI_FORMAT_R11G11B10_FLOAT: - case DXGI_FORMAT_R8G8B8A8_TYPELESS: - case DXGI_FORMAT_R8G8B8A8_UNORM: - case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: - case DXGI_FORMAT_R8G8B8A8_UINT: - case DXGI_FORMAT_R8G8B8A8_SNORM: - case DXGI_FORMAT_R8G8B8A8_SINT: - case DXGI_FORMAT_R16G16_TYPELESS: - case DXGI_FORMAT_R16G16_FLOAT: - case DXGI_FORMAT_R16G16_UNORM: - case DXGI_FORMAT_R16G16_UINT: - case DXGI_FORMAT_R16G16_SNORM: - case DXGI_FORMAT_R16G16_SINT: - case DXGI_FORMAT_R32_TYPELESS: - case DXGI_FORMAT_D32_FLOAT: - case DXGI_FORMAT_R32_FLOAT: - case DXGI_FORMAT_R32_UINT: - case DXGI_FORMAT_R32_SINT: - case DXGI_FORMAT_R24G8_TYPELESS: - case DXGI_FORMAT_D24_UNORM_S8_UINT: - case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: - case DXGI_FORMAT_X24_TYPELESS_G8_UINT: - case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: - case DXGI_FORMAT_R8G8_B8G8_UNORM: - case DXGI_FORMAT_G8R8_G8B8_UNORM: - case DXGI_FORMAT_B8G8R8A8_UNORM: - case DXGI_FORMAT_B8G8R8X8_UNORM: - case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: - case DXGI_FORMAT_B8G8R8A8_TYPELESS: - case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: - case DXGI_FORMAT_B8G8R8X8_TYPELESS: - case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: - case DXGI_FORMAT_AYUV: - case DXGI_FORMAT_Y410: - case DXGI_FORMAT_YUY2: - return 32; - - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - return 24; - - case DXGI_FORMAT_R8G8_TYPELESS: - case DXGI_FORMAT_R8G8_UNORM: - case DXGI_FORMAT_R8G8_UINT: - case DXGI_FORMAT_R8G8_SNORM: - case DXGI_FORMAT_R8G8_SINT: - case DXGI_FORMAT_R16_TYPELESS: - case DXGI_FORMAT_R16_FLOAT: - case DXGI_FORMAT_D16_UNORM: - case DXGI_FORMAT_R16_UNORM: - case DXGI_FORMAT_R16_UINT: - case DXGI_FORMAT_R16_SNORM: - case DXGI_FORMAT_R16_SINT: - case DXGI_FORMAT_B5G6R5_UNORM: - case DXGI_FORMAT_B5G5R5A1_UNORM: - case DXGI_FORMAT_A8P8: - case DXGI_FORMAT_B4G4R4A4_UNORM: - return 16; - - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_420_OPAQUE: - case DXGI_FORMAT_NV11: - return 12; - - case DXGI_FORMAT_R8_TYPELESS: - case DXGI_FORMAT_R8_UNORM: - case DXGI_FORMAT_R8_UINT: - case DXGI_FORMAT_R8_SNORM: - case DXGI_FORMAT_R8_SINT: - case DXGI_FORMAT_A8_UNORM: - case DXGI_FORMAT_AI44: - case DXGI_FORMAT_IA44: - case DXGI_FORMAT_P8: - return 8; - - case DXGI_FORMAT_R1_UNORM: - return 1; - - case DXGI_FORMAT_BC1_TYPELESS: - case DXGI_FORMAT_BC1_UNORM: - case DXGI_FORMAT_BC1_UNORM_SRGB: - case DXGI_FORMAT_BC4_TYPELESS: - case DXGI_FORMAT_BC4_UNORM: - case DXGI_FORMAT_BC4_SNORM: - return 4; - - case DXGI_FORMAT_BC2_TYPELESS: - case DXGI_FORMAT_BC2_UNORM: - case DXGI_FORMAT_BC2_UNORM_SRGB: - case DXGI_FORMAT_BC3_TYPELESS: - case DXGI_FORMAT_BC3_UNORM: - case DXGI_FORMAT_BC3_UNORM_SRGB: - case DXGI_FORMAT_BC5_TYPELESS: - case DXGI_FORMAT_BC5_UNORM: - case DXGI_FORMAT_BC5_SNORM: - case DXGI_FORMAT_BC6H_TYPELESS: - case DXGI_FORMAT_BC6H_UF16: - case DXGI_FORMAT_BC6H_SF16: - case DXGI_FORMAT_BC7_TYPELESS: - case DXGI_FORMAT_BC7_UNORM: - case DXGI_FORMAT_BC7_UNORM_SRGB: - return 8; + switch (fmt) + { + case DXGI_FORMAT_R32G32B32A32_TYPELESS: + case DXGI_FORMAT_R32G32B32A32_FLOAT: + case DXGI_FORMAT_R32G32B32A32_UINT: + case DXGI_FORMAT_R32G32B32A32_SINT: + return 128; + + case DXGI_FORMAT_R32G32B32_TYPELESS: + case DXGI_FORMAT_R32G32B32_FLOAT: + case DXGI_FORMAT_R32G32B32_UINT: + case DXGI_FORMAT_R32G32B32_SINT: + return 96; + + case DXGI_FORMAT_R16G16B16A16_TYPELESS: + case DXGI_FORMAT_R16G16B16A16_FLOAT: + case DXGI_FORMAT_R16G16B16A16_UNORM: + case DXGI_FORMAT_R16G16B16A16_UINT: + case DXGI_FORMAT_R16G16B16A16_SNORM: + case DXGI_FORMAT_R16G16B16A16_SINT: + case DXGI_FORMAT_R32G32_TYPELESS: + case DXGI_FORMAT_R32G32_FLOAT: + case DXGI_FORMAT_R32G32_UINT: + case DXGI_FORMAT_R32G32_SINT: + case DXGI_FORMAT_R32G8X24_TYPELESS: + case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: + case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: + case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: + case DXGI_FORMAT_Y416: + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + return 64; + + case DXGI_FORMAT_R10G10B10A2_TYPELESS: + case DXGI_FORMAT_R10G10B10A2_UNORM: + case DXGI_FORMAT_R10G10B10A2_UINT: + case DXGI_FORMAT_R11G11B10_FLOAT: + case DXGI_FORMAT_R8G8B8A8_TYPELESS: + case DXGI_FORMAT_R8G8B8A8_UNORM: + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: + case DXGI_FORMAT_R8G8B8A8_UINT: + case DXGI_FORMAT_R8G8B8A8_SNORM: + case DXGI_FORMAT_R8G8B8A8_SINT: + case DXGI_FORMAT_R16G16_TYPELESS: + case DXGI_FORMAT_R16G16_FLOAT: + case DXGI_FORMAT_R16G16_UNORM: + case DXGI_FORMAT_R16G16_UINT: + case DXGI_FORMAT_R16G16_SNORM: + case DXGI_FORMAT_R16G16_SINT: + case DXGI_FORMAT_R32_TYPELESS: + case DXGI_FORMAT_D32_FLOAT: + case DXGI_FORMAT_R32_FLOAT: + case DXGI_FORMAT_R32_UINT: + case DXGI_FORMAT_R32_SINT: + case DXGI_FORMAT_R24G8_TYPELESS: + case DXGI_FORMAT_D24_UNORM_S8_UINT: + case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X24_TYPELESS_G8_UINT: + case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_B8G8R8A8_UNORM: + case DXGI_FORMAT_B8G8R8X8_UNORM: + case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: + case DXGI_FORMAT_B8G8R8A8_TYPELESS: + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: + case DXGI_FORMAT_B8G8R8X8_TYPELESS: + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: + case DXGI_FORMAT_AYUV: + case DXGI_FORMAT_Y410: + case DXGI_FORMAT_YUY2: + return 32; + + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + return 24; + + case DXGI_FORMAT_R8G8_TYPELESS: + case DXGI_FORMAT_R8G8_UNORM: + case DXGI_FORMAT_R8G8_UINT: + case DXGI_FORMAT_R8G8_SNORM: + case DXGI_FORMAT_R8G8_SINT: + case DXGI_FORMAT_R16_TYPELESS: + case DXGI_FORMAT_R16_FLOAT: + case DXGI_FORMAT_D16_UNORM: + case DXGI_FORMAT_R16_UNORM: + case DXGI_FORMAT_R16_UINT: + case DXGI_FORMAT_R16_SNORM: + case DXGI_FORMAT_R16_SINT: + case DXGI_FORMAT_B5G6R5_UNORM: + case DXGI_FORMAT_B5G5R5A1_UNORM: + case DXGI_FORMAT_A8P8: + case DXGI_FORMAT_B4G4R4A4_UNORM: + return 16; + + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_420_OPAQUE: + case DXGI_FORMAT_NV11: + return 12; + + case DXGI_FORMAT_R8_TYPELESS: + case DXGI_FORMAT_R8_UNORM: + case DXGI_FORMAT_R8_UINT: + case DXGI_FORMAT_R8_SNORM: + case DXGI_FORMAT_R8_SINT: + case DXGI_FORMAT_A8_UNORM: + case DXGI_FORMAT_AI44: + case DXGI_FORMAT_IA44: + case DXGI_FORMAT_P8: + return 8; + + case DXGI_FORMAT_R1_UNORM: + return 1; + + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + return 4; + + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + return 8; #if defined(_XBOX_ONE) && defined(_TITLE) - case DXGI_FORMAT_R10G10B10_7E3_A2_FLOAT: - case DXGI_FORMAT_R10G10B10_6E4_A2_FLOAT: - case DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM: - return 32; + case DXGI_FORMAT_R10G10B10_7E3_A2_FLOAT: + case DXGI_FORMAT_R10G10B10_6E4_A2_FLOAT: + case DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM: + return 32; - case DXGI_FORMAT_D16_UNORM_S8_UINT: - case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: - case DXGI_FORMAT_X16_TYPELESS_G8_UINT: - return 24; + case DXGI_FORMAT_D16_UNORM_S8_UINT: + case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X16_TYPELESS_G8_UINT: + return 24; - case DXGI_FORMAT_R4G4_UNORM: - return 8; + case DXGI_FORMAT_R4G4_UNORM: + return 8; #endif // _XBOX_ONE && _TITLE - default: - return 0; + default: + return 0; + } } -} + //-------------------------------------------------------------------------------------- + // Get surface information for a particular format + //-------------------------------------------------------------------------------------- + void GetSurfaceInfo(_In_ size_t width, + _In_ size_t height, + _In_ DXGI_FORMAT fmt, + _Out_opt_ size_t* outNumBytes, + _Out_opt_ size_t* outRowBytes, + _Out_opt_ size_t* outNumRows) + { + size_t numBytes = 0; + size_t rowBytes = 0; + size_t numRows = 0; + + bool bc = false; + bool packed = false; + bool planar = false; + size_t bpe = 0; + switch (fmt) + { + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + bc = true; + bpe = 8; + break; -//-------------------------------------------------------------------------------------- -// Get surface information for a particular format -//-------------------------------------------------------------------------------------- -static void GetSurfaceInfo( _In_ size_t width, - _In_ size_t height, - _In_ DXGI_FORMAT fmt, - _Out_opt_ size_t* outNumBytes, - _Out_opt_ size_t* outRowBytes, - _Out_opt_ size_t* outNumRows ) -{ - size_t numBytes = 0; - size_t rowBytes = 0; - size_t numRows = 0; - - bool bc = false; - bool packed = false; - bool planar = false; - size_t bpe = 0; - switch (fmt) - { - case DXGI_FORMAT_BC1_TYPELESS: - case DXGI_FORMAT_BC1_UNORM: - case DXGI_FORMAT_BC1_UNORM_SRGB: - case DXGI_FORMAT_BC4_TYPELESS: - case DXGI_FORMAT_BC4_UNORM: - case DXGI_FORMAT_BC4_SNORM: - bc=true; - bpe = 8; - break; - - case DXGI_FORMAT_BC2_TYPELESS: - case DXGI_FORMAT_BC2_UNORM: - case DXGI_FORMAT_BC2_UNORM_SRGB: - case DXGI_FORMAT_BC3_TYPELESS: - case DXGI_FORMAT_BC3_UNORM: - case DXGI_FORMAT_BC3_UNORM_SRGB: - case DXGI_FORMAT_BC5_TYPELESS: - case DXGI_FORMAT_BC5_UNORM: - case DXGI_FORMAT_BC5_SNORM: - case DXGI_FORMAT_BC6H_TYPELESS: - case DXGI_FORMAT_BC6H_UF16: - case DXGI_FORMAT_BC6H_SF16: - case DXGI_FORMAT_BC7_TYPELESS: - case DXGI_FORMAT_BC7_UNORM: - case DXGI_FORMAT_BC7_UNORM_SRGB: - bc = true; - bpe = 16; - break; + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + bc = true; + bpe = 16; + break; - case DXGI_FORMAT_R8G8_B8G8_UNORM: - case DXGI_FORMAT_G8R8_G8B8_UNORM: - case DXGI_FORMAT_YUY2: - packed = true; - bpe = 4; - break; + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_YUY2: + packed = true; + bpe = 4; + break; - case DXGI_FORMAT_Y210: - case DXGI_FORMAT_Y216: - packed = true; - bpe = 8; - break; + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + packed = true; + bpe = 8; + break; - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_420_OPAQUE: - planar = true; - bpe = 2; - break; + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_420_OPAQUE: + planar = true; + bpe = 2; + break; - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - planar = true; - bpe = 4; - break; + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + planar = true; + bpe = 4; + break; #if defined(_XBOX_ONE) && defined(_TITLE) - case DXGI_FORMAT_D16_UNORM_S8_UINT: - case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: - case DXGI_FORMAT_X16_TYPELESS_G8_UINT: - planar = true; - bpe = 4; - break; + case DXGI_FORMAT_D16_UNORM_S8_UINT: + case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X16_TYPELESS_G8_UINT: + planar = true; + bpe = 4; + break; #endif - } + } - if (bc) - { - size_t numBlocksWide = 0; - if (width > 0) + if (bc) { - numBlocksWide = std::max( 1, (width + 3) / 4 ); + size_t numBlocksWide = 0; + if (width > 0) + { + numBlocksWide = std::max(1, (width + 3) / 4); + } + size_t numBlocksHigh = 0; + if (height > 0) + { + numBlocksHigh = std::max(1, (height + 3) / 4); + } + rowBytes = numBlocksWide * bpe; + numRows = numBlocksHigh; + numBytes = rowBytes * numBlocksHigh; } - size_t numBlocksHigh = 0; - if (height > 0) + else if (packed) { - numBlocksHigh = std::max( 1, (height + 3) / 4 ); + rowBytes = ((width + 1) >> 1) * bpe; + numRows = height; + numBytes = rowBytes * height; + } + else if (fmt == DXGI_FORMAT_NV11) + { + rowBytes = ((width + 3) >> 2) * 4; + numRows = height * 2; // Direct3D makes this simplifying assumption, although it is larger than the 4:1:1 data + numBytes = rowBytes * numRows; + } + else if (planar) + { + rowBytes = ((width + 1) >> 1) * bpe; + numBytes = (rowBytes * height) + ((rowBytes * height + 1) >> 1); + numRows = height + ((height + 1) >> 1); + } + else + { + size_t bpp = BitsPerPixel(fmt); + rowBytes = (width * bpp + 7) / 8; // round up to nearest byte + numRows = height; + numBytes = rowBytes * height; } - rowBytes = numBlocksWide * bpe; - numRows = numBlocksHigh; - numBytes = rowBytes * numBlocksHigh; - } - else if (packed) - { - rowBytes = ( ( width + 1 ) >> 1 ) * bpe; - numRows = height; - numBytes = rowBytes * height; - } - else if ( fmt == DXGI_FORMAT_NV11 ) - { - rowBytes = ( ( width + 3 ) >> 2 ) * 4; - numRows = height * 2; // Direct3D makes this simplifying assumption, although it is larger than the 4:1:1 data - numBytes = rowBytes * numRows; - } - else if (planar) - { - rowBytes = ( ( width + 1 ) >> 1 ) * bpe; - numBytes = ( rowBytes * height ) + ( ( rowBytes * height + 1 ) >> 1 ); - numRows = height + ( ( height + 1 ) >> 1 ); - } - else - { - size_t bpp = BitsPerPixel( fmt ); - rowBytes = ( width * bpp + 7 ) / 8; // round up to nearest byte - numRows = height; - numBytes = rowBytes * height; - } - if (outNumBytes) - { - *outNumBytes = numBytes; - } - if (outRowBytes) - { - *outRowBytes = rowBytes; - } - if (outNumRows) - { - *outNumRows = numRows; + if (outNumBytes) + { + *outNumBytes = numBytes; + } + if (outRowBytes) + { + *outRowBytes = rowBytes; + } + if (outNumRows) + { + *outNumRows = numRows; + } } -} + //-------------------------------------------------------------------------------------- + #define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a ) -//-------------------------------------------------------------------------------------- -#define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a ) - -static DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf ) -{ - if (ddpf.flags & DDS_RGB) + DXGI_FORMAT GetDXGIFormat(const DDS_PIXELFORMAT& ddpf) { - // Note that sRGB formats are written using the "DX10" extended header - - switch (ddpf.RGBBitCount) + if (ddpf.flags & DDS_RGB) { - case 32: - if (ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0xff000000)) - { - return DXGI_FORMAT_R8G8B8A8_UNORM; - } + // Note that sRGB formats are written using the "DX10" extended header - if (ISBITMASK(0x00ff0000,0x0000ff00,0x000000ff,0xff000000)) + switch (ddpf.RGBBitCount) { - return DXGI_FORMAT_B8G8R8A8_UNORM; - } + case 32: + if (ISBITMASK(0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)) + { + return DXGI_FORMAT_R8G8B8A8_UNORM; + } - if (ISBITMASK(0x00ff0000,0x0000ff00,0x000000ff,0x00000000)) - { - return DXGI_FORMAT_B8G8R8X8_UNORM; - } + if (ISBITMASK(0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000)) + { + return DXGI_FORMAT_B8G8R8A8_UNORM; + } - // No DXGI format maps to ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0x00000000) aka D3DFMT_X8B8G8R8 + if (ISBITMASK(0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000)) + { + return DXGI_FORMAT_B8G8R8X8_UNORM; + } - // Note that many common DDS reader/writers (including D3DX) swap the - // the RED/BLUE masks for 10:10:10:2 formats. We assume - // below that the 'backwards' header mask is being used since it is most - // likely written by D3DX. The more robust solution is to use the 'DX10' - // header extension and specify the DXGI_FORMAT_R10G10B10A2_UNORM format directly + // No DXGI format maps to ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0x00000000) aka D3DFMT_X8B8G8R8 - // For 'correct' writers, this should be 0x000003ff,0x000ffc00,0x3ff00000 for RGB data - if (ISBITMASK(0x3ff00000,0x000ffc00,0x000003ff,0xc0000000)) - { - return DXGI_FORMAT_R10G10B10A2_UNORM; - } + // Note that many common DDS reader/writers (including D3DX) swap the + // the RED/BLUE masks for 10:10:10:2 formats. We assume + // below that the 'backwards' header mask is being used since it is most + // likely written by D3DX. The more robust solution is to use the 'DX10' + // header extension and specify the DXGI_FORMAT_R10G10B10A2_UNORM format directly - // No DXGI format maps to ISBITMASK(0x000003ff,0x000ffc00,0x3ff00000,0xc0000000) aka D3DFMT_A2R10G10B10 + // For 'correct' writers, this should be 0x000003ff,0x000ffc00,0x3ff00000 for RGB data + if (ISBITMASK(0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000)) + { + return DXGI_FORMAT_R10G10B10A2_UNORM; + } - if (ISBITMASK(0x0000ffff,0xffff0000,0x00000000,0x00000000)) - { - return DXGI_FORMAT_R16G16_UNORM; - } + // No DXGI format maps to ISBITMASK(0x000003ff,0x000ffc00,0x3ff00000,0xc0000000) aka D3DFMT_A2R10G10B10 - if (ISBITMASK(0xffffffff,0x00000000,0x00000000,0x00000000)) - { - // Only 32-bit color channel format in D3D9 was R32F - return DXGI_FORMAT_R32_FLOAT; // D3DX writes this out as a FourCC of 114 - } - break; + if (ISBITMASK(0x0000ffff, 0xffff0000, 0x00000000, 0x00000000)) + { + return DXGI_FORMAT_R16G16_UNORM; + } - case 24: - // No 24bpp DXGI formats aka D3DFMT_R8G8B8 - break; + if (ISBITMASK(0xffffffff, 0x00000000, 0x00000000, 0x00000000)) + { + // Only 32-bit color channel format in D3D9 was R32F + return DXGI_FORMAT_R32_FLOAT; // D3DX writes this out as a FourCC of 114 + } + break; - case 16: - if (ISBITMASK(0x7c00,0x03e0,0x001f,0x8000)) - { - return DXGI_FORMAT_B5G5R5A1_UNORM; + case 24: + // No 24bpp DXGI formats aka D3DFMT_R8G8B8 + break; + + case 16: + if (ISBITMASK(0x7c00, 0x03e0, 0x001f, 0x8000)) + { + return DXGI_FORMAT_B5G5R5A1_UNORM; + } + if (ISBITMASK(0xf800, 0x07e0, 0x001f, 0x0000)) + { + return DXGI_FORMAT_B5G6R5_UNORM; + } + + // No DXGI format maps to ISBITMASK(0x7c00,0x03e0,0x001f,0x0000) aka D3DFMT_X1R5G5B5 + + if (ISBITMASK(0x0f00, 0x00f0, 0x000f, 0xf000)) + { + return DXGI_FORMAT_B4G4R4A4_UNORM; + } + + // No DXGI format maps to ISBITMASK(0x0f00,0x00f0,0x000f,0x0000) aka D3DFMT_X4R4G4B4 + + // No 3:3:2, 3:3:2:8, or paletted DXGI formats aka D3DFMT_A8R3G3B2, D3DFMT_R3G3B2, D3DFMT_P8, D3DFMT_A8P8, etc. + break; } - if (ISBITMASK(0xf800,0x07e0,0x001f,0x0000)) + } + else if (ddpf.flags & DDS_LUMINANCE) + { + if (8 == ddpf.RGBBitCount) { - return DXGI_FORMAT_B5G6R5_UNORM; - } + if (ISBITMASK(0x000000ff, 0x00000000, 0x00000000, 0x00000000)) + { + return DXGI_FORMAT_R8_UNORM; // D3DX10/11 writes this out as DX10 extension + } - // No DXGI format maps to ISBITMASK(0x7c00,0x03e0,0x001f,0x0000) aka D3DFMT_X1R5G5B5 + // No DXGI format maps to ISBITMASK(0x0f,0x00,0x00,0xf0) aka D3DFMT_A4L4 + } - if (ISBITMASK(0x0f00,0x00f0,0x000f,0xf000)) + if (16 == ddpf.RGBBitCount) { - return DXGI_FORMAT_B4G4R4A4_UNORM; + if (ISBITMASK(0x0000ffff, 0x00000000, 0x00000000, 0x00000000)) + { + return DXGI_FORMAT_R16_UNORM; // D3DX10/11 writes this out as DX10 extension + } + if (ISBITMASK(0x000000ff, 0x00000000, 0x00000000, 0x0000ff00)) + { + return DXGI_FORMAT_R8G8_UNORM; // D3DX10/11 writes this out as DX10 extension + } } - - // No DXGI format maps to ISBITMASK(0x0f00,0x00f0,0x000f,0x0000) aka D3DFMT_X4R4G4B4 - - // No 3:3:2, 3:3:2:8, or paletted DXGI formats aka D3DFMT_A8R3G3B2, D3DFMT_R3G3B2, D3DFMT_P8, D3DFMT_A8P8, etc. - break; } - } - else if (ddpf.flags & DDS_LUMINANCE) - { - if (8 == ddpf.RGBBitCount) + else if (ddpf.flags & DDS_ALPHA) { - if (ISBITMASK(0x000000ff,0x00000000,0x00000000,0x00000000)) + if (8 == ddpf.RGBBitCount) { - return DXGI_FORMAT_R8_UNORM; // D3DX10/11 writes this out as DX10 extension + return DXGI_FORMAT_A8_UNORM; } - - // No DXGI format maps to ISBITMASK(0x0f,0x00,0x00,0xf0) aka D3DFMT_A4L4 } - - if (16 == ddpf.RGBBitCount) + else if (ddpf.flags & DDS_BUMPDUDV) { - if (ISBITMASK(0x0000ffff,0x00000000,0x00000000,0x00000000)) + if (16 == ddpf.RGBBitCount) { - return DXGI_FORMAT_R16_UNORM; // D3DX10/11 writes this out as DX10 extension + if (ISBITMASK(0x00ff, 0xff00, 0x0000, 0x0000)) + { + return DXGI_FORMAT_R8G8_SNORM; // D3DX10/11 writes this out as DX10 extension + } } - if (ISBITMASK(0x000000ff,0x00000000,0x00000000,0x0000ff00)) + + if (32 == ddpf.RGBBitCount) { - return DXGI_FORMAT_R8G8_UNORM; // D3DX10/11 writes this out as DX10 extension + if (ISBITMASK(0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)) + { + return DXGI_FORMAT_R8G8B8A8_SNORM; // D3DX10/11 writes this out as DX10 extension + } + if (ISBITMASK(0x0000ffff, 0xffff0000, 0x00000000, 0x00000000)) + { + return DXGI_FORMAT_R16G16_SNORM; // D3DX10/11 writes this out as DX10 extension + } + + // No DXGI format maps to ISBITMASK(0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000) aka D3DFMT_A2W10V10U10 } } - } - else if (ddpf.flags & DDS_ALPHA) - { - if (8 == ddpf.RGBBitCount) - { - return DXGI_FORMAT_A8_UNORM; - } - } - else if (ddpf.flags & DDS_BUMPDUDV) - { - if (16 == ddpf.RGBBitCount) + else if (ddpf.flags & DDS_FOURCC) { - if (ISBITMASK(0x00ff, 0xff00, 0x0000, 0x0000)) + if (MAKEFOURCC('D', 'X', 'T', '1') == ddpf.fourCC) { - return DXGI_FORMAT_R8G8_SNORM; // D3DX10/11 writes this out as DX10 extension + return DXGI_FORMAT_BC1_UNORM; } - } - - if (32 == ddpf.RGBBitCount) - { - if (ISBITMASK(0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)) + if (MAKEFOURCC('D', 'X', 'T', '3') == ddpf.fourCC) { - return DXGI_FORMAT_R8G8B8A8_SNORM; // D3DX10/11 writes this out as DX10 extension + return DXGI_FORMAT_BC2_UNORM; } - if (ISBITMASK(0x0000ffff, 0xffff0000, 0x00000000, 0x00000000)) + if (MAKEFOURCC('D', 'X', 'T', '5') == ddpf.fourCC) { - return DXGI_FORMAT_R16G16_SNORM; // D3DX10/11 writes this out as DX10 extension + return DXGI_FORMAT_BC3_UNORM; } - // No DXGI format maps to ISBITMASK(0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000) aka D3DFMT_A2W10V10U10 - } - } - else if (ddpf.flags & DDS_FOURCC) - { - if (MAKEFOURCC( 'D', 'X', 'T', '1' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC1_UNORM; - } - if (MAKEFOURCC( 'D', 'X', 'T', '3' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC2_UNORM; - } - if (MAKEFOURCC( 'D', 'X', 'T', '5' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC3_UNORM; - } - - // While pre-multiplied alpha isn't directly supported by the DXGI formats, - // they are basically the same as these BC formats so they can be mapped - if (MAKEFOURCC( 'D', 'X', 'T', '2' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC2_UNORM; - } - if (MAKEFOURCC( 'D', 'X', 'T', '4' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC3_UNORM; - } + // While pre-multiplied alpha isn't directly supported by the DXGI formats, + // they are basically the same as these BC formats so they can be mapped + if (MAKEFOURCC('D', 'X', 'T', '2') == ddpf.fourCC) + { + return DXGI_FORMAT_BC2_UNORM; + } + if (MAKEFOURCC('D', 'X', 'T', '4') == ddpf.fourCC) + { + return DXGI_FORMAT_BC3_UNORM; + } - if (MAKEFOURCC( 'A', 'T', 'I', '1' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC4_UNORM; - } - if (MAKEFOURCC( 'B', 'C', '4', 'U' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC4_UNORM; - } - if (MAKEFOURCC( 'B', 'C', '4', 'S' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC4_SNORM; - } + if (MAKEFOURCC('A', 'T', 'I', '1') == ddpf.fourCC) + { + return DXGI_FORMAT_BC4_UNORM; + } + if (MAKEFOURCC('B', 'C', '4', 'U') == ddpf.fourCC) + { + return DXGI_FORMAT_BC4_UNORM; + } + if (MAKEFOURCC('B', 'C', '4', 'S') == ddpf.fourCC) + { + return DXGI_FORMAT_BC4_SNORM; + } - if (MAKEFOURCC( 'A', 'T', 'I', '2' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC5_UNORM; - } - if (MAKEFOURCC( 'B', 'C', '5', 'U' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC5_UNORM; - } - if (MAKEFOURCC( 'B', 'C', '5', 'S' ) == ddpf.fourCC) - { - return DXGI_FORMAT_BC5_SNORM; - } + if (MAKEFOURCC('A', 'T', 'I', '2') == ddpf.fourCC) + { + return DXGI_FORMAT_BC5_UNORM; + } + if (MAKEFOURCC('B', 'C', '5', 'U') == ddpf.fourCC) + { + return DXGI_FORMAT_BC5_UNORM; + } + if (MAKEFOURCC('B', 'C', '5', 'S') == ddpf.fourCC) + { + return DXGI_FORMAT_BC5_SNORM; + } - // BC6H and BC7 are written using the "DX10" extended header + // BC6H and BC7 are written using the "DX10" extended header - if (MAKEFOURCC( 'R', 'G', 'B', 'G' ) == ddpf.fourCC) - { - return DXGI_FORMAT_R8G8_B8G8_UNORM; - } - if (MAKEFOURCC( 'G', 'R', 'G', 'B' ) == ddpf.fourCC) - { - return DXGI_FORMAT_G8R8_G8B8_UNORM; - } + if (MAKEFOURCC('R', 'G', 'B', 'G') == ddpf.fourCC) + { + return DXGI_FORMAT_R8G8_B8G8_UNORM; + } + if (MAKEFOURCC('G', 'R', 'G', 'B') == ddpf.fourCC) + { + return DXGI_FORMAT_G8R8_G8B8_UNORM; + } - if (MAKEFOURCC('Y','U','Y','2') == ddpf.fourCC) - { - return DXGI_FORMAT_YUY2; - } + if (MAKEFOURCC('Y', 'U', 'Y', '2') == ddpf.fourCC) + { + return DXGI_FORMAT_YUY2; + } - // Check for D3DFORMAT enums being set here - switch( ddpf.fourCC ) - { - case 36: // D3DFMT_A16B16G16R16 - return DXGI_FORMAT_R16G16B16A16_UNORM; + // Check for D3DFORMAT enums being set here + switch (ddpf.fourCC) + { + case 36: // D3DFMT_A16B16G16R16 + return DXGI_FORMAT_R16G16B16A16_UNORM; - case 110: // D3DFMT_Q16W16V16U16 - return DXGI_FORMAT_R16G16B16A16_SNORM; + case 110: // D3DFMT_Q16W16V16U16 + return DXGI_FORMAT_R16G16B16A16_SNORM; - case 111: // D3DFMT_R16F - return DXGI_FORMAT_R16_FLOAT; + case 111: // D3DFMT_R16F + return DXGI_FORMAT_R16_FLOAT; - case 112: // D3DFMT_G16R16F - return DXGI_FORMAT_R16G16_FLOAT; + case 112: // D3DFMT_G16R16F + return DXGI_FORMAT_R16G16_FLOAT; - case 113: // D3DFMT_A16B16G16R16F - return DXGI_FORMAT_R16G16B16A16_FLOAT; + case 113: // D3DFMT_A16B16G16R16F + return DXGI_FORMAT_R16G16B16A16_FLOAT; - case 114: // D3DFMT_R32F - return DXGI_FORMAT_R32_FLOAT; + case 114: // D3DFMT_R32F + return DXGI_FORMAT_R32_FLOAT; - case 115: // D3DFMT_G32R32F - return DXGI_FORMAT_R32G32_FLOAT; + case 115: // D3DFMT_G32R32F + return DXGI_FORMAT_R32G32_FLOAT; - case 116: // D3DFMT_A32B32G32R32F - return DXGI_FORMAT_R32G32B32A32_FLOAT; + case 116: // D3DFMT_A32B32G32R32F + return DXGI_FORMAT_R32G32B32A32_FLOAT; + } } - } - - return DXGI_FORMAT_UNKNOWN; -} + return DXGI_FORMAT_UNKNOWN; + } -//-------------------------------------------------------------------------------------- -static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format ) -{ - switch( format ) + //-------------------------------------------------------------------------------------- + DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) { - case DXGI_FORMAT_R8G8B8A8_UNORM: - return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; + switch (format) + { + case DXGI_FORMAT_R8G8B8A8_UNORM: + return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; - case DXGI_FORMAT_BC1_UNORM: - return DXGI_FORMAT_BC1_UNORM_SRGB; + case DXGI_FORMAT_BC1_UNORM: + return DXGI_FORMAT_BC1_UNORM_SRGB; - case DXGI_FORMAT_BC2_UNORM: - return DXGI_FORMAT_BC2_UNORM_SRGB; + case DXGI_FORMAT_BC2_UNORM: + return DXGI_FORMAT_BC2_UNORM_SRGB; - case DXGI_FORMAT_BC3_UNORM: - return DXGI_FORMAT_BC3_UNORM_SRGB; + case DXGI_FORMAT_BC3_UNORM: + return DXGI_FORMAT_BC3_UNORM_SRGB; - case DXGI_FORMAT_B8G8R8A8_UNORM: - return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; + case DXGI_FORMAT_B8G8R8A8_UNORM: + return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; - case DXGI_FORMAT_B8G8R8X8_UNORM: - return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB; + case DXGI_FORMAT_B8G8R8X8_UNORM: + return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB; - case DXGI_FORMAT_BC7_UNORM: - return DXGI_FORMAT_BC7_UNORM_SRGB; + case DXGI_FORMAT_BC7_UNORM: + return DXGI_FORMAT_BC7_UNORM_SRGB; - default: - return format; + default: + return format; + } } -} - -//-------------------------------------------------------------------------------------- -static HRESULT FillInitData( _In_ size_t width, - _In_ size_t height, - _In_ size_t depth, - _In_ size_t mipCount, - _In_ size_t arraySize, - _In_ DXGI_FORMAT format, - _In_ size_t maxsize, - _In_ size_t bitSize, - _In_reads_bytes_(bitSize) const uint8_t* bitData, - _Out_ size_t& twidth, - _Out_ size_t& theight, - _Out_ size_t& tdepth, - _Out_ size_t& skipMip, - _Out_writes_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData ) -{ - if ( !bitData || !initData ) - { - return E_POINTER; - } + //-------------------------------------------------------------------------------------- + template + HRESULT FillInitData(_In_ size_t width, + _In_ size_t height, + _In_ size_t depth, + _In_ size_t mipCount, + _In_ size_t arraySize, + _In_ DXGI_FORMAT format, + _In_ size_t maxsize, + _In_ size_t bitSize, + _In_reads_bytes_(bitSize) const uint8_t* bitData, + _Out_ size_t& twidth, + _Out_ size_t& theight, + _Out_ size_t& tdepth, + _Out_ size_t& skipMip, + _Out_writes_(mipCount*arraySize) SubresourceStructType* initData) + { + if (!bitData || !initData) + { + return E_POINTER; + } - skipMip = 0; - twidth = 0; - theight = 0; - tdepth = 0; + skipMip = 0; + twidth = 0; + theight = 0; + tdepth = 0; - size_t NumBytes = 0; - size_t RowBytes = 0; - const uint8_t* pSrcBits = bitData; - const uint8_t* pEndBits = bitData + bitSize; + size_t NumBytes = 0; + size_t RowBytes = 0; + const uint8_t* pSrcBits = bitData; + const uint8_t* pEndBits = bitData + bitSize; - size_t index = 0; - for( size_t j = 0; j < arraySize; j++ ) - { - size_t w = width; - size_t h = height; - size_t d = depth; - for( size_t i = 0; i < mipCount; i++ ) + size_t index = 0; + for (size_t j = 0; j < arraySize; j++) { - GetSurfaceInfo( w, - h, - format, - &NumBytes, - &RowBytes, - nullptr - ); - - if ( (mipCount <= 1) || !maxsize || (w <= maxsize && h <= maxsize && d <= maxsize) ) + size_t w = width; + size_t h = height; + size_t d = depth; + for (size_t i = 0; i < mipCount; i++) { - if ( !twidth ) + GetSurfaceInfo(w, + h, + format, + &NumBytes, + &RowBytes, + nullptr + ); + + if ((mipCount <= 1) || !maxsize || (w <= maxsize && h <= maxsize && d <= maxsize)) + { + if (!twidth) + { + twidth = w; + theight = h; + tdepth = d; + } + + assert(index < mipCount * arraySize); + _Analysis_assume_(index < mipCount * arraySize); + initData[index].pSysMem = reinterpret_cast(pSrcBits); + initData[index].SysMemPitch = static_cast(RowBytes); + initData[index].SysMemSlicePitch = static_cast(NumBytes); + ++index; + } + else if (!j) { - twidth = w; - theight = h; - tdepth = d; + // Count number of skipped mipmaps (first item only) + ++skipMip; } - assert(index < mipCount * arraySize); - _Analysis_assume_(index < mipCount * arraySize); - initData[index].pSysMem = ( const void* )pSrcBits; - initData[index].SysMemPitch = static_cast( RowBytes ); - initData[index].SysMemSlicePitch = static_cast( NumBytes ); - ++index; - } - else if ( !j ) - { - // Count number of skipped mipmaps (first item only) - ++skipMip; - } + if (pSrcBits + (NumBytes*d) > pEndBits) + { + return HRESULT_FROM_WIN32(ERROR_HANDLE_EOF); + } - if (pSrcBits + (NumBytes*d) > pEndBits) - { - return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF ); - } - - pSrcBits += NumBytes * d; + pSrcBits += NumBytes * d; - w = w >> 1; - h = h >> 1; - d = d >> 1; - if (w == 0) - { - w = 1; - } - if (h == 0) - { - h = 1; - } - if (d == 0) - { - d = 1; + w = w >> 1; + h = h >> 1; + d = d >> 1; + if (w == 0) + { + w = 1; + } + if (h == 0) + { + h = 1; + } + if (d == 0) + { + d = 1; + } } } - } - - return (index > 0) ? S_OK : E_FAIL; -} - -//-------------------------------------------------------------------------------------- -static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice, - _In_ uint32_t resDim, - _In_ size_t width, - _In_ size_t height, - _In_ size_t depth, - _In_ size_t mipCount, - _In_ size_t arraySize, - _In_ DXGI_FORMAT format, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _In_ bool isCubeMap, - _In_reads_opt_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView ) -{ - if ( !d3dDevice ) - return E_POINTER; - - HRESULT hr = E_FAIL; - - if ( forceSRGB ) - { - format = MakeSRGB( format ); - } + return (index > 0) ? S_OK : E_FAIL; + } + + //-------------------------------------------------------------------------------------- + HRESULT CreateD3DResources(_In_ ID3D11Device* d3dDevice, + _In_ uint32_t resDim, + _In_ size_t width, + _In_ size_t height, + _In_ size_t depth, + _In_ size_t mipCount, + _In_ size_t arraySize, + _In_ DXGI_FORMAT format, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _In_ bool isCubeMap, + _In_reads_opt_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView) + { + if (!d3dDevice) + return E_POINTER; + + HRESULT hr = E_FAIL; + + if (forceSRGB) + { + format = MakeSRGB(format); + } - switch ( resDim ) - { + switch (resDim) + { case D3D11_RESOURCE_DIMENSION_TEXTURE1D: + { + D3D11_TEXTURE1D_DESC desc; + desc.Width = static_cast(width); + desc.MipLevels = static_cast(mipCount); + desc.ArraySize = static_cast(arraySize); + desc.Format = format; + desc.Usage = usage; + desc.BindFlags = bindFlags; + desc.CPUAccessFlags = cpuAccessFlags; + desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE; + + ID3D11Texture1D* tex = nullptr; + hr = d3dDevice->CreateTexture1D(&desc, + initData, + &tex + ); + if (SUCCEEDED(hr) && tex != 0) { - D3D11_TEXTURE1D_DESC desc; - desc.Width = static_cast( width ); - desc.MipLevels = static_cast( mipCount ); - desc.ArraySize = static_cast( arraySize ); - desc.Format = format; - desc.Usage = usage; - desc.BindFlags = bindFlags; - desc.CPUAccessFlags = cpuAccessFlags; - desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE; - - ID3D11Texture1D* tex = nullptr; - hr = d3dDevice->CreateTexture1D( &desc, - initData, - &tex - ); - if (SUCCEEDED( hr ) && tex != 0) + if (textureView != 0) { - if (textureView != 0) - { - D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc; - memset( &SRVDesc, 0, sizeof( SRVDesc ) ); - SRVDesc.Format = format; + D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; + SRVDesc.Format = format; - if (arraySize > 1) - { - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE1DARRAY; - SRVDesc.Texture1DArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - SRVDesc.Texture1DArray.ArraySize = static_cast( arraySize ); - } - else - { - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE1D; - SRVDesc.Texture1D.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - } - - hr = d3dDevice->CreateShaderResourceView( tex, - &SRVDesc, - textureView - ); - if ( FAILED(hr) ) - { - tex->Release(); - return hr; - } - } - - if (texture != 0) + if (arraySize > 1) { - *texture = tex; + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE1DARRAY; + SRVDesc.Texture1DArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels; + SRVDesc.Texture1DArray.ArraySize = static_cast(arraySize); } else { - SetDebugObjectName(tex, "DDSTextureLoader"); + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE1D; + SRVDesc.Texture1D.MipLevels = (!mipCount) ? -1 : desc.MipLevels; + } + + hr = d3dDevice->CreateShaderResourceView(tex, + &SRVDesc, + textureView + ); + if (FAILED(hr)) + { tex->Release(); + return hr; } } - } - break; - case D3D11_RESOURCE_DIMENSION_TEXTURE2D: - { - D3D11_TEXTURE2D_DESC desc; - desc.Width = static_cast( width ); - desc.Height = static_cast( height ); - desc.MipLevels = static_cast( mipCount ); - desc.ArraySize = static_cast( arraySize ); - desc.Format = format; - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; - desc.Usage = usage; - desc.BindFlags = bindFlags; - desc.CPUAccessFlags = cpuAccessFlags; - if ( isCubeMap ) + if (texture != 0) { - desc.MiscFlags = miscFlags | D3D11_RESOURCE_MISC_TEXTURECUBE; + *texture = tex; } else { - desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE; + SetDebugObjectName(tex, "DDSTextureLoader"); + tex->Release(); } + } + } + break; + + case D3D11_RESOURCE_DIMENSION_TEXTURE2D: + { + D3D11_TEXTURE2D_DESC desc; + desc.Width = static_cast(width); + desc.Height = static_cast(height); + desc.MipLevels = static_cast(mipCount); + desc.ArraySize = static_cast(arraySize); + desc.Format = format; + desc.SampleDesc.Count = 1; + desc.SampleDesc.Quality = 0; + desc.Usage = usage; + desc.BindFlags = bindFlags; + desc.CPUAccessFlags = cpuAccessFlags; + if (isCubeMap) + { + desc.MiscFlags = miscFlags | D3D11_RESOURCE_MISC_TEXTURECUBE; + } + else + { + desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE; + } - ID3D11Texture2D* tex = nullptr; - hr = d3dDevice->CreateTexture2D( &desc, - initData, - &tex - ); - if (SUCCEEDED( hr ) && tex != 0) + ID3D11Texture2D* tex = nullptr; + hr = d3dDevice->CreateTexture2D(&desc, + initData, + &tex + ); + if (SUCCEEDED(hr) && tex != 0) + { + if (textureView != 0) { - if (textureView != 0) - { - D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc; - memset( &SRVDesc, 0, sizeof( SRVDesc ) ); - SRVDesc.Format = format; + D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; + SRVDesc.Format = format; - if ( isCubeMap ) - { - if (arraySize > 6) - { - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBEARRAY; - SRVDesc.TextureCubeArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - - // Earlier we set arraySize to (NumCubes * 6) - SRVDesc.TextureCubeArray.NumCubes = static_cast( arraySize / 6 ); - } - else - { - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE; - SRVDesc.TextureCube.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - } - } - else if (arraySize > 1) + if (isCubeMap) + { + if (arraySize > 6) { - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY; - SRVDesc.Texture2DArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - SRVDesc.Texture2DArray.ArraySize = static_cast( arraySize ); + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBEARRAY; + SRVDesc.TextureCubeArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels; + + // Earlier we set arraySize to (NumCubes * 6) + SRVDesc.TextureCubeArray.NumCubes = static_cast(arraySize / 6); } else { - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - SRVDesc.Texture2D.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - } - - hr = d3dDevice->CreateShaderResourceView( tex, - &SRVDesc, - textureView - ); - if ( FAILED(hr) ) - { - tex->Release(); - return hr; + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE; + SRVDesc.TextureCube.MipLevels = (!mipCount) ? -1 : desc.MipLevels; } } - - if (texture != 0) + else if (arraySize > 1) { - *texture = tex; + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY; + SRVDesc.Texture2DArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels; + SRVDesc.Texture2DArray.ArraySize = static_cast(arraySize); } else { - SetDebugObjectName(tex, "DDSTextureLoader"); + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + SRVDesc.Texture2D.MipLevels = (!mipCount) ? -1 : desc.MipLevels; + } + + hr = d3dDevice->CreateShaderResourceView(tex, + &SRVDesc, + textureView + ); + if (FAILED(hr)) + { tex->Release(); + return hr; } } + + if (texture != 0) + { + *texture = tex; + } + else + { + SetDebugObjectName(tex, "DDSTextureLoader"); + tex->Release(); + } } - break; + } + break; case D3D11_RESOURCE_DIMENSION_TEXTURE3D: + { + D3D11_TEXTURE3D_DESC desc; + desc.Width = static_cast(width); + desc.Height = static_cast(height); + desc.Depth = static_cast(depth); + desc.MipLevels = static_cast(mipCount); + desc.Format = format; + desc.Usage = usage; + desc.BindFlags = bindFlags; + desc.CPUAccessFlags = cpuAccessFlags; + desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE; + + ID3D11Texture3D* tex = nullptr; + hr = d3dDevice->CreateTexture3D(&desc, + initData, + &tex + ); + if (SUCCEEDED(hr) && tex != 0) { - D3D11_TEXTURE3D_DESC desc; - desc.Width = static_cast( width ); - desc.Height = static_cast( height ); - desc.Depth = static_cast( depth ); - desc.MipLevels = static_cast( mipCount ); - desc.Format = format; - desc.Usage = usage; - desc.BindFlags = bindFlags; - desc.CPUAccessFlags = cpuAccessFlags; - desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE; - - ID3D11Texture3D* tex = nullptr; - hr = d3dDevice->CreateTexture3D( &desc, - initData, - &tex - ); - if (SUCCEEDED( hr ) && tex != 0) + if (textureView != 0) { - if (textureView != 0) - { - D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc; - memset( &SRVDesc, 0, sizeof( SRVDesc ) ); - SRVDesc.Format = format; - - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; - SRVDesc.Texture3D.MipLevels = (!mipCount) ? -1 : desc.MipLevels; - - hr = d3dDevice->CreateShaderResourceView( tex, - &SRVDesc, - textureView - ); - if ( FAILED(hr) ) - { - tex->Release(); - return hr; - } - } + D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; + SRVDesc.Format = format; - if (texture != 0) - { - *texture = tex; - } - else + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; + SRVDesc.Texture3D.MipLevels = (!mipCount) ? -1 : desc.MipLevels; + + hr = d3dDevice->CreateShaderResourceView(tex, + &SRVDesc, + textureView + ); + if (FAILED(hr)) { - SetDebugObjectName(tex, "DDSTextureLoader"); tex->Release(); + return hr; } } - } - break; - } - - return hr; -} - - -//-------------------------------------------------------------------------------------- -static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, -#if defined(_XBOX_ONE) && defined(_TITLE) - _In_opt_ ID3D11DeviceX* d3dDeviceX, - _In_opt_ ID3D11DeviceContextX* d3dContextX, -#endif - _In_ const DDS_HEADER* header, - _In_reads_bytes_(bitSize) const uint8_t* bitData, - _In_ size_t bitSize, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Outptr_opt_ ID3D11Resource** texture, - _Outptr_opt_ ID3D11ShaderResourceView** textureView ) -{ - HRESULT hr = S_OK; - - UINT width = header->width; - UINT height = header->height; - UINT depth = header->depth; - uint32_t resDim = D3D11_RESOURCE_DIMENSION_UNKNOWN; - UINT arraySize = 1; - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN; - bool isCubeMap = false; - - size_t mipCount = header->mipMapCount; - if (0 == mipCount) - { - mipCount = 1; - } + if (texture != 0) + { + *texture = tex; + } + else + { + SetDebugObjectName(tex, "DDSTextureLoader"); + tex->Release(); + } + } + } + break; + } - if ((header->ddspf.flags & DDS_FOURCC) && - (MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC )) - { - auto d3d10ext = reinterpret_cast( (const char*)header + sizeof(DDS_HEADER) ); + return hr; + } - arraySize = d3d10ext->arraySize; - if (arraySize == 0) + //-------------------------------------------------------------------------------------- + HRESULT CreateTextureFromDDS(_In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, +#if defined(_XBOX_ONE) && defined(_TITLE) + _In_opt_ ID3D11DeviceX* d3dDeviceX, + _In_opt_ ID3D11DeviceContextX* d3dContextX, +#endif + _In_ const DDS_HEADER* header, + _In_reads_bytes_(bitSize) const uint8_t* bitData, + _In_ size_t bitSize, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView) + { + HRESULT hr = S_OK; + + UINT width = header->width; + UINT height = header->height; + UINT depth = header->depth; + + uint32_t resDim = D3D11_RESOURCE_DIMENSION_UNKNOWN; + UINT arraySize = 1; + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN; + bool isCubeMap = false; + + size_t mipCount = header->mipMapCount; + if (0 == mipCount) { - return HRESULT_FROM_WIN32( ERROR_INVALID_DATA ); + mipCount = 1; } - switch( d3d10ext->dxgiFormat ) + if ((header->ddspf.flags & DDS_FOURCC) && + (MAKEFOURCC('D', 'X', '1', '0') == header->ddspf.fourCC)) { - case DXGI_FORMAT_AI44: - case DXGI_FORMAT_IA44: - case DXGI_FORMAT_P8: - case DXGI_FORMAT_A8P8: - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); + auto d3d10ext = reinterpret_cast((const char*)header + sizeof(DDS_HEADER)); - default: - if ( BitsPerPixel( d3d10ext->dxgiFormat ) == 0 ) + arraySize = d3d10ext->arraySize; + if (arraySize == 0) { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); + return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); } - } - - format = d3d10ext->dxgiFormat; - switch ( d3d10ext->resourceDimension ) - { - case D3D11_RESOURCE_DIMENSION_TEXTURE1D: - // D3DX writes 1D textures with a fixed Height of 1 - if ((header->flags & DDS_HEIGHT) && height != 1) + switch (d3d10ext->dxgiFormat) { - return HRESULT_FROM_WIN32( ERROR_INVALID_DATA ); - } - height = depth = 1; - break; + case DXGI_FORMAT_AI44: + case DXGI_FORMAT_IA44: + case DXGI_FORMAT_P8: + case DXGI_FORMAT_A8P8: + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); - case D3D11_RESOURCE_DIMENSION_TEXTURE2D: - if (d3d10ext->miscFlag & D3D11_RESOURCE_MISC_TEXTURECUBE) - { - arraySize *= 6; - isCubeMap = true; + default: + if (BitsPerPixel(d3d10ext->dxgiFormat) == 0) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } } - depth = 1; - break; - case D3D11_RESOURCE_DIMENSION_TEXTURE3D: - if (!(header->flags & DDS_HEADER_FLAGS_VOLUME)) - { - return HRESULT_FROM_WIN32( ERROR_INVALID_DATA ); - } + format = d3d10ext->dxgiFormat; - if (arraySize > 1) + switch (d3d10ext->resourceDimension) { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } - break; + case D3D11_RESOURCE_DIMENSION_TEXTURE1D: + // D3DX writes 1D textures with a fixed Height of 1 + if ((header->flags & DDS_HEIGHT) && height != 1) + { + return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); + } + height = depth = 1; + break; - default: - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } + case D3D11_RESOURCE_DIMENSION_TEXTURE2D: + if (d3d10ext->miscFlag & D3D11_RESOURCE_MISC_TEXTURECUBE) + { + arraySize *= 6; + isCubeMap = true; + } + depth = 1; + break; - resDim = d3d10ext->resourceDimension; - } - else - { - format = GetDXGIFormat( header->ddspf ); + case D3D11_RESOURCE_DIMENSION_TEXTURE3D: + if (!(header->flags & DDS_HEADER_FLAGS_VOLUME)) + { + return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); + } - if (format == DXGI_FORMAT_UNKNOWN) - { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } + if (arraySize > 1) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; - if (header->flags & DDS_HEADER_FLAGS_VOLUME) - { - resDim = D3D11_RESOURCE_DIMENSION_TEXTURE3D; + default: + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + resDim = d3d10ext->resourceDimension; } - else + else { - if (header->caps2 & DDS_CUBEMAP) + format = GetDXGIFormat(header->ddspf); + + if (format == DXGI_FORMAT_UNKNOWN) { - // We require all six faces to be defined - if ((header->caps2 & DDS_CUBEMAP_ALLFACES ) != DDS_CUBEMAP_ALLFACES) - { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } - arraySize = 6; - isCubeMap = true; + if (header->flags & DDS_HEADER_FLAGS_VOLUME) + { + resDim = D3D11_RESOURCE_DIMENSION_TEXTURE3D; } + else + { + if (header->caps2 & DDS_CUBEMAP) + { + // We require all six faces to be defined + if ((header->caps2 & DDS_CUBEMAP_ALLFACES) != DDS_CUBEMAP_ALLFACES) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } - depth = 1; - resDim = D3D11_RESOURCE_DIMENSION_TEXTURE2D; + arraySize = 6; + isCubeMap = true; + } - // Note there's no way for a legacy Direct3D 9 DDS to express a '1D' texture - } + depth = 1; + resDim = D3D11_RESOURCE_DIMENSION_TEXTURE2D; - assert( BitsPerPixel( format ) != 0 ); - } + // Note there's no way for a legacy Direct3D 9 DDS to express a '1D' texture + } - // Bound sizes (for security purposes we don't trust DDS file metadata larger than the D3D 11.x hardware requirements) - if (mipCount > D3D11_REQ_MIP_LEVELS) - { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } + assert(BitsPerPixel(format) != 0); + } - switch ( resDim ) - { - case D3D11_RESOURCE_DIMENSION_TEXTURE1D: - if ((arraySize > D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION) || - (width > D3D11_REQ_TEXTURE1D_U_DIMENSION) ) + // Bound sizes (for security purposes we don't trust DDS file metadata larger than the Direct3D hardware requirements) + if (mipCount > D3D11_REQ_MIP_LEVELS) { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); } - break; - case D3D11_RESOURCE_DIMENSION_TEXTURE2D: - if ( isCubeMap ) + switch (resDim) { - // This is the right bound because we set arraySize to (NumCubes*6) above - if ((arraySize > D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) || - (width > D3D11_REQ_TEXTURECUBE_DIMENSION) || - (height > D3D11_REQ_TEXTURECUBE_DIMENSION)) + case D3D11_RESOURCE_DIMENSION_TEXTURE1D: + if ((arraySize > D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION) || + (width > D3D11_REQ_TEXTURE1D_U_DIMENSION)) { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); } - } - else if ((arraySize > D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) || - (width > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION) || - (height > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION)) - { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } - break; + break; - case D3D11_RESOURCE_DIMENSION_TEXTURE3D: - if ((arraySize > 1) || - (width > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) || - (height > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) || - (depth > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) ) - { - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } - break; + case D3D11_RESOURCE_DIMENSION_TEXTURE2D: + if (isCubeMap) + { + // This is the right bound because we set arraySize to (NumCubes*6) above + if ((arraySize > D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) || + (width > D3D11_REQ_TEXTURECUBE_DIMENSION) || + (height > D3D11_REQ_TEXTURECUBE_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + } + else if ((arraySize > D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) || + (width > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION) || + (height > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; - default: - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } + case D3D11_RESOURCE_DIMENSION_TEXTURE3D: + if ((arraySize > 1) || + (width > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) || + (height > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) || + (depth > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; - bool autogen = false; - if ( mipCount == 1 && d3dContext != 0 && textureView != 0 ) // Must have context and shader-view to auto generate mipmaps - { - // See if format is supported for auto-gen mipmaps (varies by feature level) - UINT fmtSupport = 0; - hr = d3dDevice->CheckFormatSupport( format, &fmtSupport ); - if ( SUCCEEDED(hr) && ( fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN ) ) + default: + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + bool autogen = false; + if (mipCount == 1 && d3dContext != 0 && textureView != 0) // Must have context and shader-view to auto generate mipmaps { - // 10level9 feature levels do not support auto-gen mipgen for volume textures - if ( ( resDim != D3D11_RESOURCE_DIMENSION_TEXTURE3D ) - || ( d3dDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0 ) ) + // See if format is supported for auto-gen mipmaps (varies by feature level) + UINT fmtSupport = 0; + hr = d3dDevice->CheckFormatSupport(format, &fmtSupport); + if (SUCCEEDED(hr) && (fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN)) { - autogen = true; + // 10level9 feature levels do not support auto-gen mipgen for volume textures + if ((resDim != D3D11_RESOURCE_DIMENSION_TEXTURE3D) + || (d3dDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0)) + { + autogen = true; #if defined(_XBOX_ONE) && defined(_TITLE) - if ( !d3dDeviceX || !d3dContextX ) - return E_INVALIDARG; + if (!d3dDeviceX || !d3dContextX) + return E_INVALIDARG; #endif + } } } - } - if ( autogen ) - { - // Create texture with auto-generated mipmaps - ID3D11Resource* tex = nullptr; - hr = CreateD3DResources( d3dDevice, resDim, width, height, depth, 0, arraySize, - format, usage, - bindFlags | D3D11_BIND_RENDER_TARGET, - cpuAccessFlags, - miscFlags | D3D11_RESOURCE_MISC_GENERATE_MIPS, forceSRGB, - isCubeMap, nullptr, &tex, textureView ); - if ( SUCCEEDED(hr) ) + if (autogen) { - size_t numBytes = 0; - size_t rowBytes = 0; - GetSurfaceInfo( width, height, format, &numBytes, &rowBytes, nullptr ); - - if ( numBytes > bitSize ) + // Create texture with auto-generated mipmaps + ID3D11Resource* tex = nullptr; + hr = CreateD3DResources(d3dDevice, resDim, width, height, depth, 0, arraySize, + format, usage, + bindFlags | D3D11_BIND_RENDER_TARGET, + cpuAccessFlags, + miscFlags | D3D11_RESOURCE_MISC_GENERATE_MIPS, forceSRGB, + isCubeMap, nullptr, &tex, textureView); + if (SUCCEEDED(hr)) { - (*textureView)->Release(); - *textureView = nullptr; - tex->Release(); - return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF ); - } - - D3D11_SHADER_RESOURCE_VIEW_DESC desc; - (*textureView)->GetDesc( &desc ); - - UINT mipLevels = 1; + size_t numBytes = 0; + size_t rowBytes = 0; + GetSurfaceInfo(width, height, format, &numBytes, &rowBytes, nullptr); - switch( desc.ViewDimension ) - { - case D3D_SRV_DIMENSION_TEXTURE1D: mipLevels = desc.Texture1D.MipLevels; break; - case D3D_SRV_DIMENSION_TEXTURE1DARRAY: mipLevels = desc.Texture1DArray.MipLevels; break; - case D3D_SRV_DIMENSION_TEXTURE2D: mipLevels = desc.Texture2D.MipLevels; break; - case D3D_SRV_DIMENSION_TEXTURE2DARRAY: mipLevels = desc.Texture2DArray.MipLevels; break; - case D3D_SRV_DIMENSION_TEXTURECUBE: mipLevels = desc.TextureCube.MipLevels; break; - case D3D_SRV_DIMENSION_TEXTURECUBEARRAY:mipLevels = desc.TextureCubeArray.MipLevels; break; - case D3D_SRV_DIMENSION_TEXTURE3D: mipLevels = desc.Texture3D.MipLevels; break; - default: - (*textureView)->Release(); - *textureView = nullptr; - tex->Release(); - return E_UNEXPECTED; - } + if (numBytes > bitSize) + { + (*textureView)->Release(); + *textureView = nullptr; + tex->Release(); + return HRESULT_FROM_WIN32(ERROR_HANDLE_EOF); + } -#if defined(_XBOX_ONE) && defined(_TITLE) + D3D11_SHADER_RESOURCE_VIEW_DESC desc; + (*textureView)->GetDesc(&desc); - std::unique_ptr initData( new (std::nothrow) D3D11_SUBRESOURCE_DATA[ arraySize ] ); - if ( !initData ) - { - return E_OUTOFMEMORY; - } + UINT mipLevels = 1; - const uint8_t* pSrcBits = bitData; - const uint8_t* pEndBits = bitData + bitSize; - for( UINT item = 0; item < arraySize; ++item ) - { - if ( (pSrcBits + numBytes) > pEndBits ) + switch (desc.ViewDimension) { + case D3D_SRV_DIMENSION_TEXTURE1D: mipLevels = desc.Texture1D.MipLevels; break; + case D3D_SRV_DIMENSION_TEXTURE1DARRAY: mipLevels = desc.Texture1DArray.MipLevels; break; + case D3D_SRV_DIMENSION_TEXTURE2D: mipLevels = desc.Texture2D.MipLevels; break; + case D3D_SRV_DIMENSION_TEXTURE2DARRAY: mipLevels = desc.Texture2DArray.MipLevels; break; + case D3D_SRV_DIMENSION_TEXTURECUBE: mipLevels = desc.TextureCube.MipLevels; break; + case D3D_SRV_DIMENSION_TEXTURECUBEARRAY:mipLevels = desc.TextureCubeArray.MipLevels; break; + case D3D_SRV_DIMENSION_TEXTURE3D: mipLevels = desc.Texture3D.MipLevels; break; + default: (*textureView)->Release(); *textureView = nullptr; tex->Release(); - return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF ); + return E_UNEXPECTED; } - initData[item].pSysMem = pSrcBits; - initData[item].SysMemPitch = static_cast(rowBytes); - initData[item].SysMemSlicePitch = static_cast(numBytes); - pSrcBits += numBytes; - } +#if defined(_XBOX_ONE) && defined(_TITLE) - ID3D11Resource* pStaging = nullptr; - switch( resDim ) - { - case D3D11_RESOURCE_DIMENSION_TEXTURE1D: + std::unique_ptr initData(new (std::nothrow) D3D11_SUBRESOURCE_DATA[arraySize]); + if (!initData) + { + return E_OUTOFMEMORY; + } + + const uint8_t* pSrcBits = bitData; + const uint8_t* pEndBits = bitData + bitSize; + for (UINT item = 0; item < arraySize; ++item) + { + if ((pSrcBits + numBytes) > pEndBits) + { + (*textureView)->Release(); + *textureView = nullptr; + tex->Release(); + return HRESULT_FROM_WIN32(ERROR_HANDLE_EOF); + } + + initData[item].pSysMem = pSrcBits; + initData[item].SysMemPitch = static_cast(rowBytes); + initData[item].SysMemSlicePitch = static_cast(numBytes); + pSrcBits += numBytes; + } + + ID3D11Resource* pStaging = nullptr; + switch (resDim) + { + case D3D11_RESOURCE_DIMENSION_TEXTURE1D: { ID3D11Texture1D *temp = nullptr; - CD3D11_TEXTURE1D_DESC stagingDesc( format, width, arraySize, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ ); - hr = d3dDevice->CreateTexture1D( &stagingDesc, initData.get(), &temp ); - if ( SUCCEEDED(hr) ) + CD3D11_TEXTURE1D_DESC stagingDesc(format, width, arraySize, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ); + hr = d3dDevice->CreateTexture1D(&stagingDesc, initData.get(), &temp); + if (SUCCEEDED(hr)) pStaging = temp; } break; - case D3D11_RESOURCE_DIMENSION_TEXTURE2D: + case D3D11_RESOURCE_DIMENSION_TEXTURE2D: { ID3D11Texture2D *temp = nullptr; - CD3D11_TEXTURE2D_DESC stagingDesc( format, width, height, arraySize, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ, 1, 0, isCubeMap ? D3D11_RESOURCE_MISC_TEXTURECUBE : 0 ); - hr = d3dDevice->CreateTexture2D( &stagingDesc, initData.get(), &temp ); - if ( SUCCEEDED(hr) ) + CD3D11_TEXTURE2D_DESC stagingDesc(format, width, height, arraySize, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ, 1, 0, isCubeMap ? D3D11_RESOURCE_MISC_TEXTURECUBE : 0); + hr = d3dDevice->CreateTexture2D(&stagingDesc, initData.get(), &temp); + if (SUCCEEDED(hr)) pStaging = temp; } break; - case D3D11_RESOURCE_DIMENSION_TEXTURE3D: + case D3D11_RESOURCE_DIMENSION_TEXTURE3D: { ID3D11Texture3D *temp = nullptr; - CD3D11_TEXTURE3D_DESC stagingDesc( format, width, height, depth, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ ); - hr = d3dDevice->CreateTexture3D( &stagingDesc, initData.get(), &temp ); - if ( SUCCEEDED(hr) ) + CD3D11_TEXTURE3D_DESC stagingDesc(format, width, height, depth, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ); + hr = d3dDevice->CreateTexture3D(&stagingDesc, initData.get(), &temp); + if (SUCCEEDED(hr)) pStaging = temp; } break; - }; + }; - if ( SUCCEEDED(hr) ) - { - for( UINT item = 0; item < arraySize; ++item ) + if (SUCCEEDED(hr)) { - UINT res = D3D11CalcSubresource( 0, item, mipLevels ); - d3dContext->CopySubresourceRegion( tex, res, 0, 0, 0, pStaging, item, nullptr ); - } + for (UINT item = 0; item < arraySize; ++item) + { + UINT res = D3D11CalcSubresource(0, item, mipLevels); + d3dContext->CopySubresourceRegion(tex, res, 0, 0, 0, pStaging, item, nullptr); + } - UINT64 copyFence = d3dContextX->InsertFence(0); - while( d3dDeviceX->IsFencePending( copyFence ) ) { SwitchToThread(); } - pStaging->Release(); - } + UINT64 copyFence = d3dContextX->InsertFence(0); + while (d3dDeviceX->IsFencePending(copyFence)) { SwitchToThread(); } + pStaging->Release(); + } #else - if ( arraySize > 1 ) - { - const uint8_t* pSrcBits = bitData; - const uint8_t* pEndBits = bitData + bitSize; - for( UINT item = 0; item < arraySize; ++item ) + if (arraySize > 1) { - if ( (pSrcBits + numBytes) > pEndBits ) + const uint8_t* pSrcBits = bitData; + const uint8_t* pEndBits = bitData + bitSize; + for (UINT item = 0; item < arraySize; ++item) { - (*textureView)->Release(); - *textureView = nullptr; - tex->Release(); - return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF ); - } + if ((pSrcBits + numBytes) > pEndBits) + { + (*textureView)->Release(); + *textureView = nullptr; + tex->Release(); + return HRESULT_FROM_WIN32(ERROR_HANDLE_EOF); + } - UINT res = D3D11CalcSubresource( 0, item, mipLevels ); - d3dContext->UpdateSubresource( tex, res, nullptr, pSrcBits, static_cast(rowBytes), static_cast(numBytes) ); - pSrcBits += numBytes; + UINT res = D3D11CalcSubresource(0, item, mipLevels); + d3dContext->UpdateSubresource(tex, res, nullptr, pSrcBits, static_cast(rowBytes), static_cast(numBytes)); + pSrcBits += numBytes; + } + } + else + { + d3dContext->UpdateSubresource(tex, 0, nullptr, bitData, static_cast(rowBytes), static_cast(numBytes)); } - } - else - { - d3dContext->UpdateSubresource( tex, 0, nullptr, bitData, static_cast(rowBytes), static_cast(numBytes) ); - } #endif - d3dContext->GenerateMips( *textureView ); + d3dContext->GenerateMips(*textureView); - if ( texture ) - { - *texture = tex; - } - else - { - tex->Release(); + if (texture) + { + *texture = tex; + } + else + { + tex->Release(); + } } } - } - else - { - // Create the texture - std::unique_ptr initData( new (std::nothrow) D3D11_SUBRESOURCE_DATA[ mipCount * arraySize ] ); - if ( !initData ) + else { - return E_OUTOFMEMORY; - } - - size_t skipMip = 0; - size_t twidth = 0; - size_t theight = 0; - size_t tdepth = 0; - hr = FillInitData( width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData, - twidth, theight, tdepth, skipMip, initData.get() ); + // Create the texture + std::unique_ptr initData(new (std::nothrow) D3D11_SUBRESOURCE_DATA[mipCount * arraySize]); + if (!initData) + { + return E_OUTOFMEMORY; + } - if ( SUCCEEDED(hr) ) - { - hr = CreateD3DResources( d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize, - format, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB, - isCubeMap, initData.get(), texture, textureView ); + size_t skipMip = 0; + size_t twidth = 0; + size_t theight = 0; + size_t tdepth = 0; + hr = FillInitData(width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData, + twidth, theight, tdepth, skipMip, initData.get()); - if ( FAILED(hr) && !maxsize && (mipCount > 1) ) + if (SUCCEEDED(hr)) { - // Retry with a maxsize determined by feature level - switch( d3dDevice->GetFeatureLevel() ) + hr = CreateD3DResources(d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize, + format, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB, + isCubeMap, initData.get(), texture, textureView); + + if (FAILED(hr) && !maxsize && (mipCount > 1)) { - case D3D_FEATURE_LEVEL_9_1: - case D3D_FEATURE_LEVEL_9_2: - if ( isCubeMap ) - { - maxsize = 512 /*D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION*/; - } - else + // Retry with a maxsize determined by feature level + switch (d3dDevice->GetFeatureLevel()) { + case D3D_FEATURE_LEVEL_9_1: + case D3D_FEATURE_LEVEL_9_2: + if (isCubeMap) + { + maxsize = 512 /*D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION*/; + } + else + { + maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) + ? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ + : 2048 /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; + } + break; + + case D3D_FEATURE_LEVEL_9_3: + maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) + ? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ + : 4096 /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; + break; + + default: // D3D_FEATURE_LEVEL_10_0 & D3D_FEATURE_LEVEL_10_1 maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) - ? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ - : 2048 /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; + ? 2048 /*D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ + : 8192 /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; + break; } - break; - - case D3D_FEATURE_LEVEL_9_3: - maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) - ? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ - : 4096 /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; - break; - - default: // D3D_FEATURE_LEVEL_10_0 & D3D_FEATURE_LEVEL_10_1 - maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) - ? 2048 /*D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ - : 8192 /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; - break; - } - hr = FillInitData( width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData, - twidth, theight, tdepth, skipMip, initData.get() ); - if ( SUCCEEDED(hr) ) - { - hr = CreateD3DResources( d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize, - format, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB, - isCubeMap, initData.get(), texture, textureView ); + hr = FillInitData(width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData, + twidth, theight, tdepth, skipMip, initData.get()); + if (SUCCEEDED(hr)) + { + hr = CreateD3DResources(d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize, + format, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB, + isCubeMap, initData.get(), texture, textureView); + } } } } - } - - return hr; -} + return hr; + } -//-------------------------------------------------------------------------------------- -static DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header ) -{ - if ( header->ddspf.flags & DDS_FOURCC ) + //-------------------------------------------------------------------------------------- + DDS_ALPHA_MODE GetAlphaMode(_In_ const DDS_HEADER* header) { - if ( MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC ) + if (header->ddspf.flags & DDS_FOURCC) { - auto d3d10ext = reinterpret_cast( (const char*)header + sizeof(DDS_HEADER) ); - auto mode = static_cast( d3d10ext->miscFlags2 & DDS_MISC_FLAGS2_ALPHA_MODE_MASK ); - switch( mode ) + if (MAKEFOURCC('D', 'X', '1', '0') == header->ddspf.fourCC) + { + auto d3d10ext = reinterpret_cast((const char*)header + sizeof(DDS_HEADER)); + auto mode = static_cast(d3d10ext->miscFlags2 & DDS_MISC_FLAGS2_ALPHA_MODE_MASK); + switch (mode) + { + case DDS_ALPHA_MODE_STRAIGHT: + case DDS_ALPHA_MODE_PREMULTIPLIED: + case DDS_ALPHA_MODE_OPAQUE: + case DDS_ALPHA_MODE_CUSTOM: + return mode; + } + } + else if ((MAKEFOURCC('D', 'X', 'T', '2') == header->ddspf.fourCC) + || (MAKEFOURCC('D', 'X', 'T', '4') == header->ddspf.fourCC)) { - case DDS_ALPHA_MODE_STRAIGHT: - case DDS_ALPHA_MODE_PREMULTIPLIED: - case DDS_ALPHA_MODE_OPAQUE: - case DDS_ALPHA_MODE_CUSTOM: - return mode; + return DDS_ALPHA_MODE_PREMULTIPLIED; } } - else if ( ( MAKEFOURCC( 'D', 'X', 'T', '2' ) == header->ddspf.fourCC ) - || ( MAKEFOURCC( 'D', 'X', 'T', '4' ) == header->ddspf.fourCC ) ) - { - return DDS_ALPHA_MODE_PREMULTIPLIED; - } - } - return DDS_ALPHA_MODE_UNKNOWN; -} + return DDS_ALPHA_MODE_UNKNOWN; + } +} // anonymous namespace //-------------------------------------------------------------------------------------- @@ -1857,18 +1843,27 @@ HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice, if ( SUCCEEDED(hr) ) { #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) - #if defined(_XBOX_ONE) && defined(_TITLE) - if (texture != 0 && *texture != 0) - { - (*texture)->SetName( fileName ); - } - if (textureView != 0 && *textureView != 0 ) - { - (*textureView)->SetName( fileName ); - } - #else if (texture != 0 || textureView != 0) { + #if defined(_XBOX_ONE) && defined(_TITLE) + const wchar_t* pstrName = wcsrchr(fileName, '\\'); + if (!pstrName) + { + pstrName = fileName; + } + else + { + pstrName++; + } + if (texture != 0 && *texture != 0) + { + (*texture)->SetName(pstrName); + } + if (textureView != 0 && *textureView != 0) + { + (*textureView)->SetName(pstrName); + } + #else CHAR strFileA[MAX_PATH]; int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, @@ -1881,7 +1876,7 @@ HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice, ); if ( result > 0 ) { - const CHAR* pstrName = strrchr( strFileA, '\\' ); + const char* pstrName = strrchr( strFileA, '\\' ); if (!pstrName) { pstrName = strFileA; @@ -1907,8 +1902,8 @@ HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice, ); } } - } #endif + } #endif if ( alphaMode ) @@ -1982,18 +1977,27 @@ HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice, if ( SUCCEEDED(hr) ) { #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) - #if defined(_XBOX_ONE) && defined(_TITLE) - if (texture != 0 && *texture != 0) - { - (*texture)->SetName( fileName ); - } - if (textureView != 0 && *textureView != 0 ) - { - (*textureView)->SetName( fileName ); - } - #else if (texture != 0 || textureView != 0) { + #if defined(_XBOX_ONE) && defined(_TITLE) + const wchar_t* pstrName = wcsrchr(fileName, '\\'); + if (!pstrName) + { + pstrName = fileName; + } + else + { + pstrName++; + } + if (texture != 0 && *texture != 0) + { + (*texture)->SetName( pstrName ); + } + if (textureView != 0 && *textureView != 0 ) + { + (*textureView)->SetName( pstrName ); + } + #else CHAR strFileA[MAX_PATH]; int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, @@ -2006,7 +2010,7 @@ HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice, ); if ( result > 0 ) { - const CHAR* pstrName = strrchr( strFileA, '\\' ); + const char* pstrName = strrchr( strFileA, '\\' ); if (!pstrName) { pstrName = strFileA; @@ -2032,8 +2036,8 @@ HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice, ); } } - } #endif + } #endif if ( alphaMode ) diff --git a/Kits/DirectXTK/Src/DGSLEffectFactory.cpp b/Kits/DirectXTK/Src/DGSLEffectFactory.cpp index d89eaae63d365f23086ea4ae2c7ea18e5a669d03..2991b7f97c2e1d8e1071159794fe43dc41c5455d 100644 --- a/Kits/DirectXTK/Src/DGSLEffectFactory.cpp +++ b/Kits/DirectXTK/Src/DGSLEffectFactory.cpp @@ -17,13 +17,10 @@ #include "SharedResourcePool.h" #include "DDSTextureLoader.h" +#include "WICTextureLoader.h" #include -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) -#include "WICTextureLoader.h" -#endif - #include "BinaryReader.h" using namespace DirectX; @@ -41,15 +38,15 @@ public: std::shared_ptr CreateEffect( _In_ DGSLEffectFactory* factory, _In_ const IEffectFactory::EffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ); std::shared_ptr CreateDGSLEffect( _In_ DGSLEffectFactory* factory, _In_ const DGSLEffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ); - void CreateTexture( _In_z_ const WCHAR* texture, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ); - void CreatePixelShader( _In_z_ const WCHAR* shader, _Outptr_ ID3D11PixelShader** pixelShader ); + void CreateTexture( _In_z_ const wchar_t* texture, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ); + void CreatePixelShader( _In_z_ const wchar_t* shader, _Outptr_ ID3D11PixelShader** pixelShader ); void ReleaseCache(); void SetSharing( bool enabled ) { mSharing = enabled; } static SharedResourcePool instancePool; - WCHAR mPath[MAX_PATH]; + wchar_t mPath[MAX_PATH]; private: ComPtr device; @@ -193,7 +190,7 @@ std::shared_ptr DGSLEffectFactory::Impl::CreateDGSLEffect( DGSLEffectFa } else { - wchar_t root[ MAX_PATH ] = {0}; + wchar_t root[ MAX_PATH ] = {}; auto last = wcsrchr( info.pixelShader, '_' ); if ( last ) { @@ -331,7 +328,7 @@ std::shared_ptr DGSLEffectFactory::Impl::CreateDGSLEffect( DGSLEffectFa _Use_decl_annotations_ -void DGSLEffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) +void DGSLEffectFactory::Impl::CreateTexture( const wchar_t* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) { if ( !name || !textureView ) throw std::exception("invalid arguments"); @@ -350,12 +347,11 @@ void DGSLEffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceCont } else { - WCHAR fullName[MAX_PATH] = {0}; + wchar_t fullName[MAX_PATH] = {}; wcscpy_s( fullName, mPath ); wcscat_s( fullName, name ); -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) - WCHAR ext[_MAX_EXT]; + wchar_t ext[_MAX_EXT]; _wsplitpath_s( name, nullptr, 0, nullptr, 0, nullptr, 0, ext, _MAX_EXT ); if ( _wcsicmp( ext, L".dds" ) == 0 ) @@ -388,15 +384,6 @@ void DGSLEffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceCont throw std::exception( "CreateWICTextureFromFile" ); } } -#else - UNREFERENCED_PARAMETER( deviceContext ); - HRESULT hr = CreateDDSTextureFromFile( device.Get(), fullName, nullptr, textureView ); - if ( FAILED(hr) ) - { - DebugTrace( "CreateDDSTextureFromFile failed (%08X) for '%ls'\n", hr, fullName ); - throw std::exception( "CreateDDSTextureFromFile" ); - } -#endif if ( mSharing && *name && it == mTextureCache.end() ) { @@ -408,7 +395,7 @@ void DGSLEffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceCont _Use_decl_annotations_ -void DGSLEffectFactory::Impl::CreatePixelShader( const WCHAR* name, ID3D11PixelShader** pixelShader ) +void DGSLEffectFactory::Impl::CreatePixelShader( const wchar_t* name, ID3D11PixelShader** pixelShader ) { if ( !name || !pixelShader ) throw std::exception("invalid arguments"); @@ -423,7 +410,7 @@ void DGSLEffectFactory::Impl::CreatePixelShader( const WCHAR* name, ID3D11PixelS } else { - WCHAR fullName[MAX_PATH]={0}; + wchar_t fullName[MAX_PATH] = {}; wcscpy_s( fullName, mPath ); wcscat_s( fullName, name ); @@ -495,7 +482,7 @@ std::shared_ptr DGSLEffectFactory::CreateEffect( const EffectInfo& info } _Use_decl_annotations_ -void DGSLEffectFactory::CreateTexture( const WCHAR* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) +void DGSLEffectFactory::CreateTexture( const wchar_t* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) { return pImpl->CreateTexture( name, deviceContext, textureView ); } @@ -510,7 +497,7 @@ std::shared_ptr DGSLEffectFactory::CreateDGSLEffect( const DGSLEffectIn _Use_decl_annotations_ -void DGSLEffectFactory::CreatePixelShader( const WCHAR* shader, ID3D11PixelShader** pixelShader ) +void DGSLEffectFactory::CreatePixelShader( const wchar_t* shader, ID3D11PixelShader** pixelShader ) { pImpl->CreatePixelShader( shader, pixelShader ); } @@ -527,7 +514,7 @@ void DGSLEffectFactory::SetSharing( bool enabled ) pImpl->SetSharing( enabled ); } -void DGSLEffectFactory::SetDirectory( _In_opt_z_ const WCHAR* path ) +void DGSLEffectFactory::SetDirectory( _In_opt_z_ const wchar_t* path ) { if ( path && *path != 0 ) { diff --git a/Kits/DirectXTK/Src/EffectCommon.cpp b/Kits/DirectXTK/Src/EffectCommon.cpp index c4ef75e882355c111697a19310bc501550f6d2af..0a1b7269f7b24da33e0bae0f6a5d009df795d9ba 100644 --- a/Kits/DirectXTK/Src/EffectCommon.cpp +++ b/Kits/DirectXTK/Src/EffectCommon.cpp @@ -405,8 +405,7 @@ ID3D11ShaderResourceView* EffectDeviceResources::GetDefaultTexture() D3D11_SUBRESOURCE_DATA initData = { &s_pixel, sizeof(uint32_t), 0 }; - D3D11_TEXTURE2D_DESC desc; - memset( &desc, 0, sizeof(desc) ); + D3D11_TEXTURE2D_DESC desc = {}; desc.Width = desc.Height = desc.MipLevels = desc.ArraySize = 1; desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; desc.SampleDesc.Count = 1; @@ -420,8 +419,7 @@ ID3D11ShaderResourceView* EffectDeviceResources::GetDefaultTexture() { SetDebugObjectName(tex.Get(), "DirectXTK:Effect"); - D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc; - memset( &SRVDesc, 0, sizeof( SRVDesc ) ); + D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; SRVDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; SRVDesc.Texture2D.MipLevels = 1; diff --git a/Kits/DirectXTK/Src/EffectCommon.h b/Kits/DirectXTK/Src/EffectCommon.h index e829a629c6f7224dd3b7d7033e65716250e420d2..7544b72c007aec4f2805aaea264dcbb5db762adf 100644 --- a/Kits/DirectXTK/Src/EffectCommon.h +++ b/Kits/DirectXTK/Src/EffectCommon.h @@ -151,9 +151,9 @@ namespace DirectX EffectBase(_In_ ID3D11Device* device) : dirtyFlags(INT_MAX), mConstantBuffer(device), - mDeviceResources(deviceResourcesPool.DemandCreate(device)) + mDeviceResources(deviceResourcesPool.DemandCreate(device)), + constants{} { - ZeroMemory(&constants, sizeof(constants)); } diff --git a/Kits/DirectXTK/Src/EffectFactory.cpp b/Kits/DirectXTK/Src/EffectFactory.cpp index 4d2a55762c4afb8772f78a340bc5e034f3ddd8e1..579285adb0de22c19082ede83a8d05f535a875d2 100644 --- a/Kits/DirectXTK/Src/EffectFactory.cpp +++ b/Kits/DirectXTK/Src/EffectFactory.cpp @@ -17,10 +17,7 @@ #include "SharedResourcePool.h" #include "DDSTextureLoader.h" - -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) #include "WICTextureLoader.h" -#endif using namespace DirectX; using Microsoft::WRL::ComPtr; @@ -36,14 +33,14 @@ public: { *mPath = 0; } std::shared_ptr CreateEffect( _In_ IEffectFactory* factory, _In_ const IEffectFactory::EffectInfo& info, _In_opt_ ID3D11DeviceContext* deviceContext ); - void CreateTexture( _In_z_ const WCHAR* texture, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ); + void CreateTexture( _In_z_ const wchar_t* texture, _In_opt_ ID3D11DeviceContext* deviceContext, _Outptr_ ID3D11ShaderResourceView** textureView ); void ReleaseCache(); void SetSharing( bool enabled ) { mSharing = enabled; } static SharedResourcePool instancePool; - WCHAR mPath[MAX_PATH]; + wchar_t mPath[MAX_PATH]; private: ComPtr device; @@ -245,7 +242,7 @@ std::shared_ptr EffectFactory::Impl::CreateEffect( IEffectFactory* fact } _Use_decl_annotations_ -void EffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) +void EffectFactory::Impl::CreateTexture( const wchar_t* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) { if ( !name || !textureView ) throw std::exception("invalid arguments"); @@ -264,12 +261,11 @@ void EffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceContext* } else { - WCHAR fullName[MAX_PATH]={0}; + wchar_t fullName[MAX_PATH] = {}; wcscpy_s( fullName, mPath ); wcscat_s( fullName, name ); -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) - WCHAR ext[_MAX_EXT]; + wchar_t ext[_MAX_EXT]; _wsplitpath_s( name, nullptr, 0, nullptr, 0, nullptr, 0, ext, _MAX_EXT ); if ( _wcsicmp( ext, L".dds" ) == 0 ) @@ -302,15 +298,6 @@ void EffectFactory::Impl::CreateTexture( const WCHAR* name, ID3D11DeviceContext* throw std::exception( "CreateWICTextureFromFile" ); } } -#else - UNREFERENCED_PARAMETER( deviceContext ); - HRESULT hr = CreateDDSTextureFromFile( device.Get(), fullName, nullptr, textureView ); - if ( FAILED(hr) ) - { - DebugTrace( "CreateDDSTextureFromFile failed (%08X) for '%ls'\n", hr, fullName ); - throw std::exception( "CreateDDSTextureFromFile" ); - } -#endif if ( mSharing && *name && it == mTextureCache.end() ) { @@ -363,7 +350,7 @@ std::shared_ptr EffectFactory::CreateEffect( const EffectInfo& info, ID } _Use_decl_annotations_ -void EffectFactory::CreateTexture( const WCHAR* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) +void EffectFactory::CreateTexture( const wchar_t* name, ID3D11DeviceContext* deviceContext, ID3D11ShaderResourceView** textureView ) { return pImpl->CreateTexture( name, deviceContext, textureView ); } @@ -378,7 +365,7 @@ void EffectFactory::SetSharing( bool enabled ) pImpl->SetSharing( enabled ); } -void EffectFactory::SetDirectory( _In_opt_z_ const WCHAR* path ) +void EffectFactory::SetDirectory( _In_opt_z_ const wchar_t* path ) { if ( path && *path != 0 ) { diff --git a/Kits/DirectXTK/Src/GeometricPrimitive.cpp b/Kits/DirectXTK/Src/GeometricPrimitive.cpp index e62815135e276c5e08c1d47b35c19452a7f4fcfe..0b9a997664f4643e6c49f8df5c599f178f6f8ac8 100644 --- a/Kits/DirectXTK/Src/GeometricPrimitive.cpp +++ b/Kits/DirectXTK/Src/GeometricPrimitive.cpp @@ -86,13 +86,13 @@ namespace { assert( pBuffer != 0 ); - D3D11_BUFFER_DESC bufferDesc = { 0 }; + D3D11_BUFFER_DESC bufferDesc = {}; bufferDesc.ByteWidth = (UINT)data.size() * sizeof(T::value_type); bufferDesc.BindFlags = bindFlags; bufferDesc.Usage = D3D11_USAGE_DEFAULT; - D3D11_SUBRESOURCE_DATA dataDesc = { 0 }; + D3D11_SUBRESOURCE_DATA dataDesc = {}; dataDesc.pSysMem = data.data(); diff --git a/Kits/DirectXTK/Src/GraphicsMemory.cpp b/Kits/DirectXTK/Src/GraphicsMemory.cpp index ec7789ee36ba45ab39c5a149933744280d60898b..d0da3b442729320164281fa7f585f6d9f48d5a69 100644 --- a/Kits/DirectXTK/Src/GraphicsMemory.cpp +++ b/Kits/DirectXTK/Src/GraphicsMemory.cpp @@ -224,7 +224,7 @@ GraphicsMemory::Impl* GraphicsMemory::Impl::s_graphicsMemory = nullptr; #else //====================================================================================== -// Null allocator for standard Direct3D 11 +// Null allocator for standard Direct3D //====================================================================================== class GraphicsMemory::Impl diff --git a/Kits/DirectXTK/Src/ModelLoadCMO.cpp b/Kits/DirectXTK/Src/ModelLoadCMO.cpp index b392916cb61686424a53c068d20cd8306e50a207..2a3c77bd55c88586a03ce1c8991b4c84c8ec14da 100644 --- a/Kits/DirectXTK/Src/ModelLoadCMO.cpp +++ b/Kits/DirectXTK/Src/ModelLoadCMO.cpp @@ -409,12 +409,12 @@ std::unique_ptr DirectX::Model::CreateFromCMO( ID3D11Device* d3dDevice, c ib.ptr = indexes; ibData.emplace_back( ib ); - D3D11_BUFFER_DESC desc = {0}; + D3D11_BUFFER_DESC desc = {}; desc.Usage = D3D11_USAGE_DEFAULT; desc.ByteWidth = static_cast( ibBytes ); desc.BindFlags = D3D11_BIND_INDEX_BUFFER; - D3D11_SUBRESOURCE_DATA initData = {0}; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = indexes; ThrowIfFailed( @@ -620,7 +620,7 @@ std::unique_ptr DirectX::Model::CreateFromCMO( ID3D11Device* d3dDevice, c size_t bytes = stride * nVerts; - D3D11_BUFFER_DESC desc = {0}; + D3D11_BUFFER_DESC desc = {}; desc.Usage = D3D11_USAGE_DEFAULT; desc.ByteWidth = static_cast( bytes ); desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; @@ -628,7 +628,7 @@ std::unique_ptr DirectX::Model::CreateFromCMO( ID3D11Device* d3dDevice, c if ( fxFactoryDGSL && !enableSkinning ) { // Can use CMO vertex data directly - D3D11_SUBRESOURCE_DATA initData = {0}; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = vbData[j].ptr; ThrowIfFailed( @@ -730,7 +730,7 @@ std::unique_ptr DirectX::Model::CreateFromCMO( ID3D11Device* d3dDevice, c } // Create vertex buffer from temporary buffer - D3D11_SUBRESOURCE_DATA initData = {0}; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = temp.get(); ThrowIfFailed( diff --git a/Kits/DirectXTK/Src/ModelLoadSDKMESH.cpp b/Kits/DirectXTK/Src/ModelLoadSDKMESH.cpp index 54befa627465bcbd8558cf504d3be4ff5668824a..497dc1ed7aea812c21a9aca5ac8a847739c4203e 100644 --- a/Kits/DirectXTK/Src/ModelLoadSDKMESH.cpp +++ b/Kits/DirectXTK/Src/ModelLoadSDKMESH.cpp @@ -380,13 +380,13 @@ static void LoadMaterial( _In_ const DXUT::SDKMESH_MATERIAL& mh, _In_ bool perVertexColor, _In_ bool enableSkinning, _In_ bool enableDualTexture, _Inout_ IEffectFactory& fxFactory, _Inout_ MaterialRecordSDKMESH& m ) { - WCHAR matName[ DXUT::MAX_MATERIAL_NAME ]; + wchar_t matName[ DXUT::MAX_MATERIAL_NAME ]; MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, mh.Name, -1, matName, DXUT::MAX_MATERIAL_NAME ); - WCHAR txtName[ DXUT::MAX_TEXTURE_NAME ]; + wchar_t txtName[ DXUT::MAX_TEXTURE_NAME ]; MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, mh.DiffuseTexture, -1, txtName, DXUT::MAX_TEXTURE_NAME ); - WCHAR txtName2[ DXUT::MAX_TEXTURE_NAME ]; + wchar_t txtName2[ DXUT::MAX_TEXTURE_NAME ]; MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, mh.SpecularTexture, -1, txtName2, DXUT::MAX_TEXTURE_NAME ); if ( !mh.SpecularTexture[0] && enableDualTexture ) @@ -757,12 +757,12 @@ std::unique_ptr DirectX::Model::CreateFromSDKMESH( ID3D11Device* d3dDevic auto verts = reinterpret_cast( bufferData + (vh.DataOffset - bufferDataOffset) ); - D3D11_BUFFER_DESC desc = {0}; + D3D11_BUFFER_DESC desc = {}; desc.Usage = D3D11_USAGE_DEFAULT; desc.ByteWidth = static_cast( vh.SizeBytes ); desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; - D3D11_SUBRESOURCE_DATA initData = {0}; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = verts; ThrowIfFailed( @@ -789,12 +789,12 @@ std::unique_ptr DirectX::Model::CreateFromSDKMESH( ID3D11Device* d3dDevic auto indices = reinterpret_cast( bufferData + (ih.DataOffset - bufferDataOffset) ); - D3D11_BUFFER_DESC desc = {0}; + D3D11_BUFFER_DESC desc = {}; desc.Usage = D3D11_USAGE_DEFAULT; desc.ByteWidth = static_cast( ih.SizeBytes ); desc.BindFlags = D3D11_BIND_INDEX_BUFFER; - D3D11_SUBRESOURCE_DATA initData = {0}; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = indices; ThrowIfFailed( @@ -839,7 +839,7 @@ std::unique_ptr DirectX::Model::CreateFromSDKMESH( ID3D11Device* d3dDevic } auto mesh = std::make_shared(); - WCHAR meshName[ DXUT::MAX_MESH_NAME ]; + wchar_t meshName[ DXUT::MAX_MESH_NAME ]; MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, mh.Name, -1, meshName, DXUT::MAX_MESH_NAME ); mesh->name = meshName; mesh->ccw = ccw; diff --git a/Kits/DirectXTK/Src/ModelLoadVBO.cpp b/Kits/DirectXTK/Src/ModelLoadVBO.cpp index 6c226b3533f324cab5cab2cb2d34f8655b56fabd..c715f76da5c271afe4566c949884bae9a94bd085 100644 --- a/Kits/DirectXTK/Src/ModelLoadVBO.cpp +++ b/Kits/DirectXTK/Src/ModelLoadVBO.cpp @@ -103,12 +103,12 @@ std::unique_ptr DirectX::Model::CreateFromVBO(ID3D11Device* d3dDevice, co // Create vertex buffer ComPtr vb; { - D3D11_BUFFER_DESC desc = { 0 }; + D3D11_BUFFER_DESC desc = {}; desc.Usage = D3D11_USAGE_DEFAULT; desc.ByteWidth = static_cast(vertSize); desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; - D3D11_SUBRESOURCE_DATA initData = { 0 }; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = verts; ThrowIfFailed( @@ -121,12 +121,12 @@ std::unique_ptr DirectX::Model::CreateFromVBO(ID3D11Device* d3dDevice, co // Create index buffer ComPtr ib; { - D3D11_BUFFER_DESC desc = { 0 }; + D3D11_BUFFER_DESC desc = {}; desc.Usage = D3D11_USAGE_DEFAULT; desc.ByteWidth = static_cast(indexSize); desc.BindFlags = D3D11_BIND_INDEX_BUFFER; - D3D11_SUBRESOURCE_DATA initData = { 0 }; + D3D11_SUBRESOURCE_DATA initData = {}; initData.pSysMem = indices; ThrowIfFailed( diff --git a/Kits/DirectXTK/Src/PlatformHelpers.h b/Kits/DirectXTK/Src/PlatformHelpers.h index 86faf4199d634f8ebb4303f75709d3ace5d5c5c5..823ec1877af60682f177ae0eec8352134f4bca8c 100644 --- a/Kits/DirectXTK/Src/PlatformHelpers.h +++ b/Kits/DirectXTK/Src/PlatformHelpers.h @@ -29,7 +29,7 @@ namespace DirectX virtual const char* what() const override { - static char s_str[64] = { 0 }; + static char s_str[64] = {}; sprintf_s(s_str, "Failure with HRESULT of %08X", result); return s_str; } @@ -55,7 +55,7 @@ namespace DirectX va_list args; va_start( args, format ); - char buff[1024]={0}; + char buff[1024] = {}; vsprintf_s( buff, format, args ); OutputDebugStringA( buff ); va_end( args ); diff --git a/Kits/DirectXTK/Src/PrimitiveBatch.cpp b/Kits/DirectXTK/Src/PrimitiveBatch.cpp index 84ef535aa907ea5a0bda257be296aaa500ca8bbb..02171b96c14b4828855dafa5e85dfb36ba73f53d 100644 --- a/Kits/DirectXTK/Src/PrimitiveBatch.cpp +++ b/Kits/DirectXTK/Src/PrimitiveBatch.cpp @@ -73,7 +73,7 @@ private: #if defined(_XBOX_ONE) && defined(_TITLE) static void CreateBuffer(_In_ ID3D11DeviceX* device, size_t bufferSize, D3D11_BIND_FLAG bindFlag, _Out_ ID3D11Buffer** pBuffer) { - D3D11_BUFFER_DESC desc = { 0 }; + D3D11_BUFFER_DESC desc = {}; desc.ByteWidth = (UINT)bufferSize; desc.BindFlags = bindFlag; @@ -89,7 +89,7 @@ static void CreateBuffer(_In_ ID3D11DeviceX* device, size_t bufferSize, D3D11_BI #else static void CreateBuffer(_In_ ID3D11Device* device, size_t bufferSize, D3D11_BIND_FLAG bindFlag, _Out_ ID3D11Buffer** pBuffer) { - D3D11_BUFFER_DESC desc = { 0 }; + D3D11_BUFFER_DESC desc = {}; desc.ByteWidth = (UINT)bufferSize; desc.BindFlags = bindFlag; @@ -160,7 +160,9 @@ void PrimitiveBatchBase::Impl::Begin() if (mInBeginEndPair) throw std::exception("Cannot nest Begin calls"); -#if !defined(_XBOX_ONE) || !defined(_TITLE) +#if defined(_XBOX_ONE) && defined(_TITLE) + mDeviceContext->IASetIndexBuffer(nullptr, DXGI_FORMAT_UNKNOWN, 0); +#else // Bind the index buffer. if (mMaxIndices > 0) { @@ -235,7 +237,8 @@ static void LockBuffer(_In_ ID3D11DeviceContext* deviceContext, _In_ ID3D11Buffe // Adds new geometry to the batch. -void PrimitiveBatchBase::Impl::Draw(D3D11_PRIMITIVE_TOPOLOGY topology, bool isIndexed, _In_opt_count_(indexCount) uint16_t const* indices, size_t indexCount, size_t vertexCount, _Out_ void** pMappedVertices) +_Use_decl_annotations_ +void PrimitiveBatchBase::Impl::Draw(D3D11_PRIMITIVE_TOPOLOGY topology, bool isIndexed, uint16_t const* indices, size_t indexCount, size_t vertexCount, void** pMappedVertices) { if (isIndexed && !indices) throw std::exception("Indices cannot be null"); @@ -261,12 +264,6 @@ void PrimitiveBatchBase::Impl::Draw(D3D11_PRIMITIVE_TOPOLOGY topology, bool isIn FlushBatch(); } - if (wrapIndexBuffer) - mCurrentIndex = 0; - - if (wrapVertexBuffer) - mCurrentVertex = 0; - #if defined(_XBOX_ONE) && defined(_TITLE) if (mCurrentTopology == D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED) { @@ -281,6 +278,7 @@ void PrimitiveBatchBase::Impl::Draw(D3D11_PRIMITIVE_TOPOLOGY topology, bool isIn mCurrentTopology = topology; mCurrentlyIndexed = isIndexed; + mCurrentIndex = mCurrentVertex = 0; } // Copy over the index data. @@ -291,7 +289,7 @@ void PrimitiveBatchBase::Impl::Draw(D3D11_PRIMITIVE_TOPOLOGY topology, bool isIn for (size_t i = 0; i < indexCount; i++) { - outputIndices[i] = (uint16_t)(indices[i] + mCurrentVertex - mBaseVertex); + outputIndices[i] = (uint16_t)(indices[i] + mCurrentVertex); } mCurrentIndex += indexCount; @@ -303,6 +301,12 @@ void PrimitiveBatchBase::Impl::Draw(D3D11_PRIMITIVE_TOPOLOGY topology, bool isIn mCurrentVertex += vertexCount; #else + if (wrapIndexBuffer) + mCurrentIndex = 0; + + if (wrapVertexBuffer) + mCurrentVertex = 0; + // If we are not already in a batch, lock the buffers. if (mCurrentTopology == D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED) { @@ -354,14 +358,14 @@ void PrimitiveBatchBase::Impl::FlushBatch() mDeviceContext->IASetPlacementIndexBuffer(mIndexBuffer.Get(), grfxMemoryIB, DXGI_FORMAT_R16_UINT); mDeviceContext->IASetPlacementVertexBuffer(0, mVertexBuffer.Get(), grfxMemoryVB, (UINT)mVertexSize); - mDeviceContext->DrawIndexed((UINT)(mCurrentIndex - mBaseIndex), (UINT)mBaseIndex, (UINT)mBaseVertex); + mDeviceContext->DrawIndexed((UINT)mCurrentIndex, 0, 0); } else { // Draw non-indexed geometry. mDeviceContext->IASetPlacementVertexBuffer(0, mVertexBuffer.Get(), grfxMemoryVB, (UINT)mVertexSize); - mDeviceContext->Draw((UINT)(mCurrentVertex - mBaseVertex), (UINT)mBaseVertex); + mDeviceContext->Draw((UINT)mCurrentVertex, 0); } grfxMemoryIB = grfxMemoryVB = nullptr; diff --git a/Kits/DirectXTK/Src/ScreenGrab.cpp b/Kits/DirectXTK/Src/ScreenGrab.cpp index ca335377b80f625513fe5f9af47b5294ae218352..6fd542e5adcbf609e35b7b85601192e2a21520d3 100644 --- a/Kits/DirectXTK/Src/ScreenGrab.cpp +++ b/Kits/DirectXTK/Src/ScreenGrab.cpp @@ -2,7 +2,7 @@ // File: ScreenGrab.cpp // // Function for capturing a 2D texture and saving it to a file (aka a 'screenshot' -// when used on a Direct3D 11 Render Target). +// when used on a Direct3D Render Target). // // Note these functions are useful as a light-weight runtime screen grabber. For // full-featured texture capture, DDS writer, and texture processing pipeline, @@ -27,10 +27,7 @@ #include "pch.h" -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) - #include -#endif #include "ScreenGrab.h" #include "DirectXHelpers.h" @@ -55,7 +52,7 @@ namespace { if (m_handle) { - FILE_DISPOSITION_INFO info = {0}; + FILE_DISPOSITION_INFO info = {}; info.DeleteFile = TRUE; (void)SetFileInformationByHandle(m_handle, FileDispositionInfo, &info, sizeof(info)); } @@ -67,8 +64,6 @@ namespace HANDLE m_handle; }; -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) - class auto_delete_file_wic { public: @@ -93,505 +88,499 @@ namespace ComPtr& m_handle; }; -#endif -} - -//-------------------------------------------------------------------------------------- -// Return the BPP for a particular format -//-------------------------------------------------------------------------------------- -static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) -{ - switch( fmt ) + //-------------------------------------------------------------------------------------- + // Return the BPP for a particular format + //-------------------------------------------------------------------------------------- + size_t BitsPerPixel(_In_ DXGI_FORMAT fmt) { - case DXGI_FORMAT_R32G32B32A32_TYPELESS: - case DXGI_FORMAT_R32G32B32A32_FLOAT: - case DXGI_FORMAT_R32G32B32A32_UINT: - case DXGI_FORMAT_R32G32B32A32_SINT: - return 128; - - case DXGI_FORMAT_R32G32B32_TYPELESS: - case DXGI_FORMAT_R32G32B32_FLOAT: - case DXGI_FORMAT_R32G32B32_UINT: - case DXGI_FORMAT_R32G32B32_SINT: - return 96; - - case DXGI_FORMAT_R16G16B16A16_TYPELESS: - case DXGI_FORMAT_R16G16B16A16_FLOAT: - case DXGI_FORMAT_R16G16B16A16_UNORM: - case DXGI_FORMAT_R16G16B16A16_UINT: - case DXGI_FORMAT_R16G16B16A16_SNORM: - case DXGI_FORMAT_R16G16B16A16_SINT: - case DXGI_FORMAT_R32G32_TYPELESS: - case DXGI_FORMAT_R32G32_FLOAT: - case DXGI_FORMAT_R32G32_UINT: - case DXGI_FORMAT_R32G32_SINT: - case DXGI_FORMAT_R32G8X24_TYPELESS: - case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: - case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: - case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: - case DXGI_FORMAT_Y416: - case DXGI_FORMAT_Y210: - case DXGI_FORMAT_Y216: - return 64; - - case DXGI_FORMAT_R10G10B10A2_TYPELESS: - case DXGI_FORMAT_R10G10B10A2_UNORM: - case DXGI_FORMAT_R10G10B10A2_UINT: - case DXGI_FORMAT_R11G11B10_FLOAT: - case DXGI_FORMAT_R8G8B8A8_TYPELESS: - case DXGI_FORMAT_R8G8B8A8_UNORM: - case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: - case DXGI_FORMAT_R8G8B8A8_UINT: - case DXGI_FORMAT_R8G8B8A8_SNORM: - case DXGI_FORMAT_R8G8B8A8_SINT: - case DXGI_FORMAT_R16G16_TYPELESS: - case DXGI_FORMAT_R16G16_FLOAT: - case DXGI_FORMAT_R16G16_UNORM: - case DXGI_FORMAT_R16G16_UINT: - case DXGI_FORMAT_R16G16_SNORM: - case DXGI_FORMAT_R16G16_SINT: - case DXGI_FORMAT_R32_TYPELESS: - case DXGI_FORMAT_D32_FLOAT: - case DXGI_FORMAT_R32_FLOAT: - case DXGI_FORMAT_R32_UINT: - case DXGI_FORMAT_R32_SINT: - case DXGI_FORMAT_R24G8_TYPELESS: - case DXGI_FORMAT_D24_UNORM_S8_UINT: - case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: - case DXGI_FORMAT_X24_TYPELESS_G8_UINT: - case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: - case DXGI_FORMAT_R8G8_B8G8_UNORM: - case DXGI_FORMAT_G8R8_G8B8_UNORM: - case DXGI_FORMAT_B8G8R8A8_UNORM: - case DXGI_FORMAT_B8G8R8X8_UNORM: - case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: - case DXGI_FORMAT_B8G8R8A8_TYPELESS: - case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: - case DXGI_FORMAT_B8G8R8X8_TYPELESS: - case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: - case DXGI_FORMAT_AYUV: - case DXGI_FORMAT_Y410: - case DXGI_FORMAT_YUY2: - return 32; - - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - return 24; - - case DXGI_FORMAT_R8G8_TYPELESS: - case DXGI_FORMAT_R8G8_UNORM: - case DXGI_FORMAT_R8G8_UINT: - case DXGI_FORMAT_R8G8_SNORM: - case DXGI_FORMAT_R8G8_SINT: - case DXGI_FORMAT_R16_TYPELESS: - case DXGI_FORMAT_R16_FLOAT: - case DXGI_FORMAT_D16_UNORM: - case DXGI_FORMAT_R16_UNORM: - case DXGI_FORMAT_R16_UINT: - case DXGI_FORMAT_R16_SNORM: - case DXGI_FORMAT_R16_SINT: - case DXGI_FORMAT_B5G6R5_UNORM: - case DXGI_FORMAT_B5G5R5A1_UNORM: - case DXGI_FORMAT_A8P8: - case DXGI_FORMAT_B4G4R4A4_UNORM: - return 16; - - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_420_OPAQUE: - case DXGI_FORMAT_NV11: - return 12; - - case DXGI_FORMAT_R8_TYPELESS: - case DXGI_FORMAT_R8_UNORM: - case DXGI_FORMAT_R8_UINT: - case DXGI_FORMAT_R8_SNORM: - case DXGI_FORMAT_R8_SINT: - case DXGI_FORMAT_A8_UNORM: - case DXGI_FORMAT_AI44: - case DXGI_FORMAT_IA44: - case DXGI_FORMAT_P8: - return 8; - - case DXGI_FORMAT_R1_UNORM: - return 1; - - case DXGI_FORMAT_BC1_TYPELESS: - case DXGI_FORMAT_BC1_UNORM: - case DXGI_FORMAT_BC1_UNORM_SRGB: - case DXGI_FORMAT_BC4_TYPELESS: - case DXGI_FORMAT_BC4_UNORM: - case DXGI_FORMAT_BC4_SNORM: - return 4; - - case DXGI_FORMAT_BC2_TYPELESS: - case DXGI_FORMAT_BC2_UNORM: - case DXGI_FORMAT_BC2_UNORM_SRGB: - case DXGI_FORMAT_BC3_TYPELESS: - case DXGI_FORMAT_BC3_UNORM: - case DXGI_FORMAT_BC3_UNORM_SRGB: - case DXGI_FORMAT_BC5_TYPELESS: - case DXGI_FORMAT_BC5_UNORM: - case DXGI_FORMAT_BC5_SNORM: - case DXGI_FORMAT_BC6H_TYPELESS: - case DXGI_FORMAT_BC6H_UF16: - case DXGI_FORMAT_BC6H_SF16: - case DXGI_FORMAT_BC7_TYPELESS: - case DXGI_FORMAT_BC7_UNORM: - case DXGI_FORMAT_BC7_UNORM_SRGB: - return 8; + switch (fmt) + { + case DXGI_FORMAT_R32G32B32A32_TYPELESS: + case DXGI_FORMAT_R32G32B32A32_FLOAT: + case DXGI_FORMAT_R32G32B32A32_UINT: + case DXGI_FORMAT_R32G32B32A32_SINT: + return 128; + + case DXGI_FORMAT_R32G32B32_TYPELESS: + case DXGI_FORMAT_R32G32B32_FLOAT: + case DXGI_FORMAT_R32G32B32_UINT: + case DXGI_FORMAT_R32G32B32_SINT: + return 96; + + case DXGI_FORMAT_R16G16B16A16_TYPELESS: + case DXGI_FORMAT_R16G16B16A16_FLOAT: + case DXGI_FORMAT_R16G16B16A16_UNORM: + case DXGI_FORMAT_R16G16B16A16_UINT: + case DXGI_FORMAT_R16G16B16A16_SNORM: + case DXGI_FORMAT_R16G16B16A16_SINT: + case DXGI_FORMAT_R32G32_TYPELESS: + case DXGI_FORMAT_R32G32_FLOAT: + case DXGI_FORMAT_R32G32_UINT: + case DXGI_FORMAT_R32G32_SINT: + case DXGI_FORMAT_R32G8X24_TYPELESS: + case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: + case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: + case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: + case DXGI_FORMAT_Y416: + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + return 64; + + case DXGI_FORMAT_R10G10B10A2_TYPELESS: + case DXGI_FORMAT_R10G10B10A2_UNORM: + case DXGI_FORMAT_R10G10B10A2_UINT: + case DXGI_FORMAT_R11G11B10_FLOAT: + case DXGI_FORMAT_R8G8B8A8_TYPELESS: + case DXGI_FORMAT_R8G8B8A8_UNORM: + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: + case DXGI_FORMAT_R8G8B8A8_UINT: + case DXGI_FORMAT_R8G8B8A8_SNORM: + case DXGI_FORMAT_R8G8B8A8_SINT: + case DXGI_FORMAT_R16G16_TYPELESS: + case DXGI_FORMAT_R16G16_FLOAT: + case DXGI_FORMAT_R16G16_UNORM: + case DXGI_FORMAT_R16G16_UINT: + case DXGI_FORMAT_R16G16_SNORM: + case DXGI_FORMAT_R16G16_SINT: + case DXGI_FORMAT_R32_TYPELESS: + case DXGI_FORMAT_D32_FLOAT: + case DXGI_FORMAT_R32_FLOAT: + case DXGI_FORMAT_R32_UINT: + case DXGI_FORMAT_R32_SINT: + case DXGI_FORMAT_R24G8_TYPELESS: + case DXGI_FORMAT_D24_UNORM_S8_UINT: + case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X24_TYPELESS_G8_UINT: + case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_B8G8R8A8_UNORM: + case DXGI_FORMAT_B8G8R8X8_UNORM: + case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: + case DXGI_FORMAT_B8G8R8A8_TYPELESS: + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: + case DXGI_FORMAT_B8G8R8X8_TYPELESS: + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: + case DXGI_FORMAT_AYUV: + case DXGI_FORMAT_Y410: + case DXGI_FORMAT_YUY2: + return 32; + + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + return 24; + + case DXGI_FORMAT_R8G8_TYPELESS: + case DXGI_FORMAT_R8G8_UNORM: + case DXGI_FORMAT_R8G8_UINT: + case DXGI_FORMAT_R8G8_SNORM: + case DXGI_FORMAT_R8G8_SINT: + case DXGI_FORMAT_R16_TYPELESS: + case DXGI_FORMAT_R16_FLOAT: + case DXGI_FORMAT_D16_UNORM: + case DXGI_FORMAT_R16_UNORM: + case DXGI_FORMAT_R16_UINT: + case DXGI_FORMAT_R16_SNORM: + case DXGI_FORMAT_R16_SINT: + case DXGI_FORMAT_B5G6R5_UNORM: + case DXGI_FORMAT_B5G5R5A1_UNORM: + case DXGI_FORMAT_A8P8: + case DXGI_FORMAT_B4G4R4A4_UNORM: + return 16; + + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_420_OPAQUE: + case DXGI_FORMAT_NV11: + return 12; + + case DXGI_FORMAT_R8_TYPELESS: + case DXGI_FORMAT_R8_UNORM: + case DXGI_FORMAT_R8_UINT: + case DXGI_FORMAT_R8_SNORM: + case DXGI_FORMAT_R8_SINT: + case DXGI_FORMAT_A8_UNORM: + case DXGI_FORMAT_AI44: + case DXGI_FORMAT_IA44: + case DXGI_FORMAT_P8: + return 8; + + case DXGI_FORMAT_R1_UNORM: + return 1; + + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + return 4; + + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + return 8; #if defined(_XBOX_ONE) && defined(_TITLE) - case DXGI_FORMAT_R10G10B10_7E3_A2_FLOAT: - case DXGI_FORMAT_R10G10B10_6E4_A2_FLOAT: - case DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM: - return 32; + case DXGI_FORMAT_R10G10B10_7E3_A2_FLOAT: + case DXGI_FORMAT_R10G10B10_6E4_A2_FLOAT: + case DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM: + return 32; - case DXGI_FORMAT_D16_UNORM_S8_UINT: - case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: - case DXGI_FORMAT_X16_TYPELESS_G8_UINT: - return 24; + case DXGI_FORMAT_D16_UNORM_S8_UINT: + case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X16_TYPELESS_G8_UINT: + return 24; - case DXGI_FORMAT_R4G4_UNORM: - return 8; + case DXGI_FORMAT_R4G4_UNORM: + return 8; #endif // _XBOX_ONE && _TITLE - default: - return 0; + default: + return 0; + } } -} - -//-------------------------------------------------------------------------------------- -// Determines if the format is block compressed -//-------------------------------------------------------------------------------------- -static bool IsCompressed( _In_ DXGI_FORMAT fmt ) -{ - switch ( fmt ) + //-------------------------------------------------------------------------------------- + // Determines if the format is block compressed + //-------------------------------------------------------------------------------------- + bool IsCompressed(_In_ DXGI_FORMAT fmt) { - case DXGI_FORMAT_BC1_TYPELESS: - case DXGI_FORMAT_BC1_UNORM: - case DXGI_FORMAT_BC1_UNORM_SRGB: - case DXGI_FORMAT_BC2_TYPELESS: - case DXGI_FORMAT_BC2_UNORM: - case DXGI_FORMAT_BC2_UNORM_SRGB: - case DXGI_FORMAT_BC3_TYPELESS: - case DXGI_FORMAT_BC3_UNORM: - case DXGI_FORMAT_BC3_UNORM_SRGB: - case DXGI_FORMAT_BC4_TYPELESS: - case DXGI_FORMAT_BC4_UNORM: - case DXGI_FORMAT_BC4_SNORM: - case DXGI_FORMAT_BC5_TYPELESS: - case DXGI_FORMAT_BC5_UNORM: - case DXGI_FORMAT_BC5_SNORM: - case DXGI_FORMAT_BC6H_TYPELESS: - case DXGI_FORMAT_BC6H_UF16: - case DXGI_FORMAT_BC6H_SF16: - case DXGI_FORMAT_BC7_TYPELESS: - case DXGI_FORMAT_BC7_UNORM: - case DXGI_FORMAT_BC7_UNORM_SRGB: - return true; + switch (fmt) + { + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + return true; - default: - return false; + default: + return false; + } } -} - -//-------------------------------------------------------------------------------------- -// Get surface information for a particular format -//-------------------------------------------------------------------------------------- -static void GetSurfaceInfo( _In_ size_t width, - _In_ size_t height, - _In_ DXGI_FORMAT fmt, - _Out_opt_ size_t* outNumBytes, - _Out_opt_ size_t* outRowBytes, - _Out_opt_ size_t* outNumRows ) -{ - size_t numBytes = 0; - size_t rowBytes = 0; - size_t numRows = 0; - - bool bc = false; - bool packed = false; - bool planar = false; - size_t bpe = 0; - switch (fmt) + //-------------------------------------------------------------------------------------- + // Get surface information for a particular format + //-------------------------------------------------------------------------------------- + void GetSurfaceInfo(_In_ size_t width, + _In_ size_t height, + _In_ DXGI_FORMAT fmt, + _Out_opt_ size_t* outNumBytes, + _Out_opt_ size_t* outRowBytes, + _Out_opt_ size_t* outNumRows) { - case DXGI_FORMAT_BC1_TYPELESS: - case DXGI_FORMAT_BC1_UNORM: - case DXGI_FORMAT_BC1_UNORM_SRGB: - case DXGI_FORMAT_BC4_TYPELESS: - case DXGI_FORMAT_BC4_UNORM: - case DXGI_FORMAT_BC4_SNORM: - bc=true; - bpe = 8; - break; + size_t numBytes = 0; + size_t rowBytes = 0; + size_t numRows = 0; + + bool bc = false; + bool packed = false; + bool planar = false; + size_t bpe = 0; + switch (fmt) + { + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + bc = true; + bpe = 8; + break; - case DXGI_FORMAT_BC2_TYPELESS: - case DXGI_FORMAT_BC2_UNORM: - case DXGI_FORMAT_BC2_UNORM_SRGB: - case DXGI_FORMAT_BC3_TYPELESS: - case DXGI_FORMAT_BC3_UNORM: - case DXGI_FORMAT_BC3_UNORM_SRGB: - case DXGI_FORMAT_BC5_TYPELESS: - case DXGI_FORMAT_BC5_UNORM: - case DXGI_FORMAT_BC5_SNORM: - case DXGI_FORMAT_BC6H_TYPELESS: - case DXGI_FORMAT_BC6H_UF16: - case DXGI_FORMAT_BC6H_SF16: - case DXGI_FORMAT_BC7_TYPELESS: - case DXGI_FORMAT_BC7_UNORM: - case DXGI_FORMAT_BC7_UNORM_SRGB: - bc = true; - bpe = 16; - break; + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + bc = true; + bpe = 16; + break; - case DXGI_FORMAT_R8G8_B8G8_UNORM: - case DXGI_FORMAT_G8R8_G8B8_UNORM: - case DXGI_FORMAT_YUY2: - packed = true; - bpe = 4; - break; + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_YUY2: + packed = true; + bpe = 4; + break; - case DXGI_FORMAT_Y210: - case DXGI_FORMAT_Y216: - packed = true; - bpe = 8; - break; + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + packed = true; + bpe = 8; + break; - case DXGI_FORMAT_NV12: - case DXGI_FORMAT_420_OPAQUE: - planar = true; - bpe = 2; - break; + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_420_OPAQUE: + planar = true; + bpe = 2; + break; - case DXGI_FORMAT_P010: - case DXGI_FORMAT_P016: - planar = true; - bpe = 4; - break; + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + planar = true; + bpe = 4; + break; #if defined(_XBOX_ONE) && defined(_TITLE) - case DXGI_FORMAT_D16_UNORM_S8_UINT: - case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: - case DXGI_FORMAT_X16_TYPELESS_G8_UINT: - planar = true; - bpe = 4; - break; + case DXGI_FORMAT_D16_UNORM_S8_UINT: + case DXGI_FORMAT_R16_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X16_TYPELESS_G8_UINT: + planar = true; + bpe = 4; + break; #endif - } + } - if (bc) - { - size_t numBlocksWide = 0; - if (width > 0) + if (bc) { - numBlocksWide = std::max( 1, (width + 3) / 4 ); + size_t numBlocksWide = 0; + if (width > 0) + { + numBlocksWide = std::max(1, (width + 3) / 4); + } + size_t numBlocksHigh = 0; + if (height > 0) + { + numBlocksHigh = std::max(1, (height + 3) / 4); + } + rowBytes = numBlocksWide * bpe; + numRows = numBlocksHigh; + numBytes = rowBytes * numBlocksHigh; } - size_t numBlocksHigh = 0; - if (height > 0) + else if (packed) { - numBlocksHigh = std::max( 1, (height + 3) / 4 ); + rowBytes = ((width + 1) >> 1) * bpe; + numRows = height; + numBytes = rowBytes * height; + } + else if (fmt == DXGI_FORMAT_NV11) + { + rowBytes = ((width + 3) >> 2) * 4; + numRows = height * 2; // Direct3D makes this simplifying assumption, although it is larger than the 4:1:1 data + numBytes = rowBytes * numRows; + } + else if (planar) + { + rowBytes = ((width + 1) >> 1) * bpe; + numBytes = (rowBytes * height) + ((rowBytes * height + 1) >> 1); + numRows = height + ((height + 1) >> 1); + } + else + { + size_t bpp = BitsPerPixel(fmt); + rowBytes = (width * bpp + 7) / 8; // round up to nearest byte + numRows = height; + numBytes = rowBytes * height; } - rowBytes = numBlocksWide * bpe; - numRows = numBlocksHigh; - numBytes = rowBytes * numBlocksHigh; - } - else if (packed) - { - rowBytes = ( ( width + 1 ) >> 1 ) * bpe; - numRows = height; - numBytes = rowBytes * height; - } - else if ( fmt == DXGI_FORMAT_NV11 ) - { - rowBytes = ( ( width + 3 ) >> 2 ) * 4; - numRows = height * 2; // Direct3D makes this simplifying assumption, although it is larger than the 4:1:1 data - numBytes = rowBytes * numRows; - } - else if (planar) - { - rowBytes = ( ( width + 1 ) >> 1 ) * bpe; - numBytes = ( rowBytes * height ) + ( ( rowBytes * height + 1 ) >> 1 ); - numRows = height + ( ( height + 1 ) >> 1 ); - } - else - { - size_t bpp = BitsPerPixel( fmt ); - rowBytes = ( width * bpp + 7 ) / 8; // round up to nearest byte - numRows = height; - numBytes = rowBytes * height; - } - if (outNumBytes) - { - *outNumBytes = numBytes; - } - if (outRowBytes) - { - *outRowBytes = rowBytes; - } - if (outNumRows) - { - *outNumRows = numRows; + if (outNumBytes) + { + *outNumBytes = numBytes; + } + if (outRowBytes) + { + *outRowBytes = rowBytes; + } + if (outNumRows) + { + *outNumRows = numRows; + } } -} - -//-------------------------------------------------------------------------------------- -static DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt ) -{ - // Assumes UNORM or FLOAT; doesn't use UINT or SINT - switch( fmt ) + //-------------------------------------------------------------------------------------- + DXGI_FORMAT EnsureNotTypeless(DXGI_FORMAT fmt) { - case DXGI_FORMAT_R32G32B32A32_TYPELESS: return DXGI_FORMAT_R32G32B32A32_FLOAT; - case DXGI_FORMAT_R32G32B32_TYPELESS: return DXGI_FORMAT_R32G32B32_FLOAT; - case DXGI_FORMAT_R16G16B16A16_TYPELESS: return DXGI_FORMAT_R16G16B16A16_UNORM; - case DXGI_FORMAT_R32G32_TYPELESS: return DXGI_FORMAT_R32G32_FLOAT; - case DXGI_FORMAT_R10G10B10A2_TYPELESS: return DXGI_FORMAT_R10G10B10A2_UNORM; - case DXGI_FORMAT_R8G8B8A8_TYPELESS: return DXGI_FORMAT_R8G8B8A8_UNORM; - case DXGI_FORMAT_R16G16_TYPELESS: return DXGI_FORMAT_R16G16_UNORM; - case DXGI_FORMAT_R32_TYPELESS: return DXGI_FORMAT_R32_FLOAT; - case DXGI_FORMAT_R8G8_TYPELESS: return DXGI_FORMAT_R8G8_UNORM; - case DXGI_FORMAT_R16_TYPELESS: return DXGI_FORMAT_R16_UNORM; - case DXGI_FORMAT_R8_TYPELESS: return DXGI_FORMAT_R8_UNORM; - case DXGI_FORMAT_BC1_TYPELESS: return DXGI_FORMAT_BC1_UNORM; - case DXGI_FORMAT_BC2_TYPELESS: return DXGI_FORMAT_BC2_UNORM; - case DXGI_FORMAT_BC3_TYPELESS: return DXGI_FORMAT_BC3_UNORM; - case DXGI_FORMAT_BC4_TYPELESS: return DXGI_FORMAT_BC4_UNORM; - case DXGI_FORMAT_BC5_TYPELESS: return DXGI_FORMAT_BC5_UNORM; - case DXGI_FORMAT_B8G8R8A8_TYPELESS: return DXGI_FORMAT_B8G8R8A8_UNORM; - case DXGI_FORMAT_B8G8R8X8_TYPELESS: return DXGI_FORMAT_B8G8R8X8_UNORM; - case DXGI_FORMAT_BC7_TYPELESS: return DXGI_FORMAT_BC7_UNORM; - default: return fmt; + // Assumes UNORM or FLOAT; doesn't use UINT or SINT + switch (fmt) + { + case DXGI_FORMAT_R32G32B32A32_TYPELESS: return DXGI_FORMAT_R32G32B32A32_FLOAT; + case DXGI_FORMAT_R32G32B32_TYPELESS: return DXGI_FORMAT_R32G32B32_FLOAT; + case DXGI_FORMAT_R16G16B16A16_TYPELESS: return DXGI_FORMAT_R16G16B16A16_UNORM; + case DXGI_FORMAT_R32G32_TYPELESS: return DXGI_FORMAT_R32G32_FLOAT; + case DXGI_FORMAT_R10G10B10A2_TYPELESS: return DXGI_FORMAT_R10G10B10A2_UNORM; + case DXGI_FORMAT_R8G8B8A8_TYPELESS: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_R16G16_TYPELESS: return DXGI_FORMAT_R16G16_UNORM; + case DXGI_FORMAT_R32_TYPELESS: return DXGI_FORMAT_R32_FLOAT; + case DXGI_FORMAT_R8G8_TYPELESS: return DXGI_FORMAT_R8G8_UNORM; + case DXGI_FORMAT_R16_TYPELESS: return DXGI_FORMAT_R16_UNORM; + case DXGI_FORMAT_R8_TYPELESS: return DXGI_FORMAT_R8_UNORM; + case DXGI_FORMAT_BC1_TYPELESS: return DXGI_FORMAT_BC1_UNORM; + case DXGI_FORMAT_BC2_TYPELESS: return DXGI_FORMAT_BC2_UNORM; + case DXGI_FORMAT_BC3_TYPELESS: return DXGI_FORMAT_BC3_UNORM; + case DXGI_FORMAT_BC4_TYPELESS: return DXGI_FORMAT_BC4_UNORM; + case DXGI_FORMAT_BC5_TYPELESS: return DXGI_FORMAT_BC5_UNORM; + case DXGI_FORMAT_B8G8R8A8_TYPELESS: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_TYPELESS: return DXGI_FORMAT_B8G8R8X8_UNORM; + case DXGI_FORMAT_BC7_TYPELESS: return DXGI_FORMAT_BC7_UNORM; + default: return fmt; + } } -} + //-------------------------------------------------------------------------------------- + HRESULT CaptureTexture(_In_ ID3D11DeviceContext* pContext, + _In_ ID3D11Resource* pSource, + _Inout_ D3D11_TEXTURE2D_DESC& desc, + _Inout_ ComPtr& pStaging) + { + if (!pContext || !pSource) + return E_INVALIDARG; -//-------------------------------------------------------------------------------------- -static HRESULT CaptureTexture( _In_ ID3D11DeviceContext* pContext, - _In_ ID3D11Resource* pSource, - _Inout_ D3D11_TEXTURE2D_DESC& desc, - _Inout_ ComPtr& pStaging ) -{ - if ( !pContext || !pSource ) - return E_INVALIDARG; - - D3D11_RESOURCE_DIMENSION resType = D3D11_RESOURCE_DIMENSION_UNKNOWN; - pSource->GetType( &resType ); + D3D11_RESOURCE_DIMENSION resType = D3D11_RESOURCE_DIMENSION_UNKNOWN; + pSource->GetType(&resType); - if ( resType != D3D11_RESOURCE_DIMENSION_TEXTURE2D ) - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); + if (resType != D3D11_RESOURCE_DIMENSION_TEXTURE2D) + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); - ComPtr pTexture; - HRESULT hr = pSource->QueryInterface(IID_GRAPHICS_PPV_ARGS(pTexture.GetAddressOf())); - if ( FAILED(hr) ) - return hr; + ComPtr pTexture; + HRESULT hr = pSource->QueryInterface(IID_GRAPHICS_PPV_ARGS(pTexture.GetAddressOf())); + if (FAILED(hr)) + return hr; - assert( pTexture ); + assert(pTexture); - pTexture->GetDesc( &desc ); + pTexture->GetDesc(&desc); - ComPtr d3dDevice; - pContext->GetDevice( d3dDevice.GetAddressOf() ); + ComPtr d3dDevice; + pContext->GetDevice(d3dDevice.GetAddressOf()); - if ( desc.SampleDesc.Count > 1 ) - { - // MSAA content must be resolved before being copied to a staging texture - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; + if (desc.SampleDesc.Count > 1) + { + // MSAA content must be resolved before being copied to a staging texture + desc.SampleDesc.Count = 1; + desc.SampleDesc.Quality = 0; - ComPtr pTemp; - hr = d3dDevice->CreateTexture2D( &desc, 0, pTemp.GetAddressOf() ); - if ( FAILED(hr) ) - return hr; + ComPtr pTemp; + hr = d3dDevice->CreateTexture2D(&desc, 0, pTemp.GetAddressOf()); + if (FAILED(hr)) + return hr; - assert( pTemp ); + assert(pTemp); - DXGI_FORMAT fmt = EnsureNotTypeless( desc.Format ); + DXGI_FORMAT fmt = EnsureNotTypeless(desc.Format); - UINT support = 0; - hr = d3dDevice->CheckFormatSupport( fmt, &support ); - if ( FAILED(hr) ) - return hr; + UINT support = 0; + hr = d3dDevice->CheckFormatSupport(fmt, &support); + if (FAILED(hr)) + return hr; - if ( !(support & D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE) ) - return E_FAIL; + if (!(support & D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE)) + return E_FAIL; - for( UINT item = 0; item < desc.ArraySize; ++item ) - { - for( UINT level = 0; level < desc.MipLevels; ++level ) + for (UINT item = 0; item < desc.ArraySize; ++item) { - UINT index = D3D11CalcSubresource( level, item, desc.MipLevels ); - pContext->ResolveSubresource( pTemp.Get(), index, pSource, index, fmt ); + for (UINT level = 0; level < desc.MipLevels; ++level) + { + UINT index = D3D11CalcSubresource(level, item, desc.MipLevels); + pContext->ResolveSubresource(pTemp.Get(), index, pSource, index, fmt); + } } - } - desc.BindFlags = 0; - desc.MiscFlags &= D3D11_RESOURCE_MISC_TEXTURECUBE; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - desc.Usage = D3D11_USAGE_STAGING; + desc.BindFlags = 0; + desc.MiscFlags &= D3D11_RESOURCE_MISC_TEXTURECUBE; + desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; + desc.Usage = D3D11_USAGE_STAGING; - hr = d3dDevice->CreateTexture2D( &desc, 0, pStaging.GetAddressOf() ); - if ( FAILED(hr) ) - return hr; + hr = d3dDevice->CreateTexture2D(&desc, 0, pStaging.GetAddressOf()); + if (FAILED(hr)) + return hr; - assert( pStaging ); + assert(pStaging); - pContext->CopyResource( pStaging.Get(), pTemp.Get() ); - } - else if ( (desc.Usage == D3D11_USAGE_STAGING) && (desc.CPUAccessFlags & D3D11_CPU_ACCESS_READ) ) - { - // Handle case where the source is already a staging texture we can use directly - pStaging = pTexture; - } - else - { - // Otherwise, create a staging texture from the non-MSAA source - desc.BindFlags = 0; - desc.MiscFlags &= D3D11_RESOURCE_MISC_TEXTURECUBE; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - desc.Usage = D3D11_USAGE_STAGING; + pContext->CopyResource(pStaging.Get(), pTemp.Get()); + } + else if ((desc.Usage == D3D11_USAGE_STAGING) && (desc.CPUAccessFlags & D3D11_CPU_ACCESS_READ)) + { + // Handle case where the source is already a staging texture we can use directly + pStaging = pTexture; + } + else + { + // Otherwise, create a staging texture from the non-MSAA source + desc.BindFlags = 0; + desc.MiscFlags &= D3D11_RESOURCE_MISC_TEXTURECUBE; + desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; + desc.Usage = D3D11_USAGE_STAGING; - hr = d3dDevice->CreateTexture2D( &desc, 0, pStaging.GetAddressOf() ); - if ( FAILED(hr) ) - return hr; + hr = d3dDevice->CreateTexture2D(&desc, 0, pStaging.GetAddressOf()); + if (FAILED(hr)) + return hr; - assert( pStaging ); + assert(pStaging); - pContext->CopyResource( pStaging.Get(), pSource ); - } + pContext->CopyResource(pStaging.Get(), pSource); + } #if defined(_XBOX_ONE) && defined(_TITLE) - if ( d3dDevice->GetCreationFlags() & D3D11_CREATE_DEVICE_IMMEDIATE_CONTEXT_FAST_SEMANTICS ) - { - ComPtr d3dDeviceX; - hr = d3dDevice.As( &d3dDeviceX ); - if ( FAILED(hr) ) - return hr; + if (d3dDevice->GetCreationFlags() & D3D11_CREATE_DEVICE_IMMEDIATE_CONTEXT_FAST_SEMANTICS) + { + ComPtr d3dDeviceX; + hr = d3dDevice.As(&d3dDeviceX); + if (FAILED(hr)) + return hr; - ComPtr d3dContextX; - hr = pContext->QueryInterface(IID_GRAPHICS_PPV_ARGS(d3dContextX.GetAddressOf())); - if ( FAILED(hr) ) - return hr; + ComPtr d3dContextX; + hr = pContext->QueryInterface(IID_GRAPHICS_PPV_ARGS(d3dContextX.GetAddressOf())); + if (FAILED(hr)) + return hr; - UINT64 copyFence = d3dContextX->InsertFence(0); - - while ( d3dDeviceX->IsFencePending( copyFence ) ) - { - SwitchToThread(); + UINT64 copyFence = d3dContextX->InsertFence(0); + + while (d3dDeviceX->IsFencePending(copyFence)) + { + SwitchToThread(); + } } - } #endif - return S_OK; -} + return S_OK; + } +} // anonymous namespace //-------------------------------------------------------------------------------------- @@ -602,7 +591,7 @@ HRESULT DirectX::SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext, if ( !fileName ) return E_INVALIDARG; - D3D11_TEXTURE2D_DESC desc = { 0 }; + D3D11_TEXTURE2D_DESC desc = {}; ComPtr pStaging; HRESULT hr = CaptureTexture( pContext, pSource, desc, pStaging ); if ( FAILED(hr) ) @@ -755,8 +744,6 @@ HRESULT DirectX::SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext, } //-------------------------------------------------------------------------------------- -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) - namespace DirectX { extern bool _IsWIC2(); @@ -773,7 +760,7 @@ HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, if ( !fileName ) return E_INVALIDARG; - D3D11_TEXTURE2D_DESC desc = { 0 }; + D3D11_TEXTURE2D_DESC desc = {}; ComPtr pStaging; HRESULT hr = CaptureTexture( pContext, pSource, desc, pStaging ); if ( FAILED(hr) ) @@ -828,7 +815,7 @@ HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); } - IWICImagingFactory* pWIC = _GetWIC(); + auto pWIC = _GetWIC(); if ( !pWIC ) return E_NOINTERFACE; @@ -861,7 +848,7 @@ HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, if ( targetFormat && memcmp( &guidContainerFormat, &GUID_ContainerFormatBmp, sizeof(WICPixelFormatGUID) ) == 0 && _IsWIC2() ) { // Opt-in to the WIC2 support for writing 32-bit Windows BMP files with an alpha channel - PROPBAG2 option = { 0 }; + PROPBAG2 option = {}; option.pstrName = L"EnableV5Header32bppBGRA"; VARIANT varValue; @@ -1077,5 +1064,3 @@ HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, return S_OK; } - -#endif // !WINAPI_FAMILY || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) || (_WIN32_WINNT > _WIN32_WINNT_WIN8) diff --git a/Kits/DirectXTK/Src/Shaders/CompileShaders.cmd b/Kits/DirectXTK/Src/Shaders/CompileShaders.cmd index 4d53b490f5eadf0789204a482d3975c6eeb5b8a9..839d5db4be8e72f4298e41d6de59053833903c27 100644 --- a/Kits/DirectXTK/Src/Shaders/CompileShaders.cmd +++ b/Kits/DirectXTK/Src/Shaders/CompileShaders.cmd @@ -144,28 +144,28 @@ endlocal exit /b :CompileShader -set fxc=fxc /nologo %1.fx /T%2_4_0_level_9_1 /Zpc /Qstrip_reflect /Qstrip_debug /E%3 /FhCompiled\%1_%3.inc /Vn%1_%3 +set fxc=fxc /nologo %1.fx /T%2_4_0_level_9_1 /Zi /Zpc /Qstrip_reflect /Qstrip_debug /E%3 /FhCompiled\%1_%3.inc /FdCompiled\%1_%3.pdb /Vn%1_%3 echo. echo %fxc% %fxc% || set error=1 exit /b :CompileShaderHLSL -set fxc=fxc /nologo %1.hlsl /T%2_4_0_level_9_1 /Zpc /Qstrip_reflect /Qstrip_debug /E%3 /FhCompiled\%1_%3.inc /Vn%1_%3 +set fxc=fxc /nologo %1.hlsl /T%2_4_0_level_9_1 /Zi /Zpc /Qstrip_reflect /Qstrip_debug /E%3 /FhCompiled\%1_%3.inc /FdCompiled\%1_%3.pdb /Vn%1_%3 echo. echo %fxc% %fxc% || set error=1 exit /b :CompileShaderxbox -set fxc=%XBOXFXC% /nologo %1.fx /T%2_5_0 /Zpc /Qstrip_reflect /Qstrip_debug /D__XBOX_DISABLE_SHADER_NAME_EMPLACEMENT /E%3 /FhCompiled\XboxOne%1_%3.inc /Vn%1_%3 +set fxc=%XBOXFXC% /nologo %1.fx /T%2_5_0 /Zpc /Zi /Qstrip_reflect /Qstrip_debug /D__XBOX_DISABLE_SHADER_NAME_EMPLACEMENT /E%3 /FhCompiled\XboxOne%1_%3.inc /FdCompiled\XboxOne%1_%3.pdb /Vn%1_%3 echo. echo %fxc% %fxc% || set error=1 exit /b :CompileShaderHLSLxbox -set fxc=%XBOXFXC% /nologo %1.hlsl /T%2_5_0 /Zpc /Qstrip_reflect /Qstrip_debug /D__XBOX_DISABLE_SHADER_NAME_EMPLACEMENT /E%3 /FhCompiled\XboxOne%1_%3.inc /Vn%1_%3 +set fxc=%XBOXFXC% /nologo %1.hlsl /T%2_5_0 /Zpc /Zi /Qstrip_reflect /Qstrip_debug /D__XBOX_DISABLE_SHADER_NAME_EMPLACEMENT /E%3 /FhCompiled\XboxOne%1_%3.inc /FdCompiled\XboxOne%1_%3.pdb /Vn%1_%3 echo. echo %fxc% %fxc% || set error=1 diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNe.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNe.inc index 8b7bcac260614c049b9e654811402d80e9698647..e4e49e9b073592a4b714dd14fc56ad10d9933ddd 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNe.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNe.inc @@ -36,20 +36,24 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 115 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" texld r0, t2, s0 mad r1.w, r0.w, t0.w, -c0.x - mul r0, r0, t0 + mul r0, r0, t0 // ::color<0,1,2,3> abs r1.x, r1.w add r1.x, r1.x, -c0.y cmp r1, r1.x, c0.w, c0.z texkill r1 + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r1.xyz, c1, r0.w, -r0 - mad r0.xyz, t1.w, r1, r0 - mov oC0, r0 + mad r0.xyz, t1.w, r1, r0 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSAlphaTestEqNe<0,1,2,3> // approximately 10 instruction slots used (1 texture, 9 arithmetic) ps_4_0 @@ -77,17 +81,17 @@ ret const BYTE AlphaTestEffect_PSAlphaTestEqNe[] = { - 68, 88, 66, 67, 123, 41, - 156, 115, 172, 45, 94, 163, - 162, 165, 36, 203, 174, 182, - 166, 134, 1, 0, 0, 0, - 160, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 208, 75, + 162, 32, 33, 200, 11, 204, + 50, 168, 64, 242, 244, 89, + 11, 137, 1, 0, 0, 0, + 56, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 68, 1, 0, 0, 4, 3, - 0, 0, 108, 3, 0, 0, - 65, 111, 110, 57, 12, 1, - 0, 0, 12, 1, 0, 0, - 0, 2, 255, 255, 216, 0, + 220, 3, 0, 0, 156, 5, + 0, 0, 4, 6, 0, 0, + 65, 111, 110, 57, 164, 3, + 0, 0, 164, 3, 0, 0, + 0, 2, 255, 255, 112, 3, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -95,141 +99,252 @@ const BYTE AlphaTestEffect_PSAlphaTestEqNe[] = 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 2, 0, 228, 176, 0, 8, - 228, 160, 4, 0, 0, 4, - 1, 0, 8, 128, 0, 0, - 255, 128, 0, 0, 255, 176, - 0, 0, 0, 161, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 0, - 228, 176, 35, 0, 0, 2, - 1, 0, 1, 128, 1, 0, - 255, 128, 2, 0, 0, 3, - 1, 0, 1, 128, 1, 0, - 0, 128, 0, 0, 85, 161, - 88, 0, 0, 4, 1, 0, - 15, 128, 1, 0, 0, 128, - 0, 0, 255, 160, 0, 0, - 170, 160, 65, 0, 0, 1, - 1, 0, 15, 128, 4, 0, - 0, 4, 1, 0, 7, 128, - 1, 0, 228, 160, 0, 0, - 255, 128, 0, 0, 228, 129, - 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 255, 176, - 1, 0, 228, 128, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 184, 1, - 0, 0, 64, 0, 0, 0, - 110, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, + 0, 2, 255, 255, 254, 255, + 165, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 104, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 14, 0, 0, 0, + 200, 0, 0, 0, 4, 0, + 0, 0, 24, 2, 0, 0, + 56, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 69, 102, 102, 101, 99, + 116, 46, 102, 120, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 171, 171, + 40, 0, 0, 0, 119, 0, + 0, 0, 0, 0, 255, 255, + 156, 2, 0, 0, 0, 0, + 255, 255, 168, 2, 0, 0, + 0, 0, 255, 255, 180, 2, + 0, 0, 0, 0, 255, 255, + 192, 2, 0, 0, 115, 0, + 0, 0, 204, 2, 0, 0, + 117, 0, 0, 0, 220, 2, + 0, 0, 115, 0, 0, 0, + 240, 2, 0, 0, 117, 0, + 0, 0, 0, 3, 0, 0, + 117, 0, 0, 0, 12, 3, + 0, 0, 117, 0, 0, 0, + 28, 3, 0, 0, 117, 0, + 0, 0, 48, 3, 0, 0, + 20, 0, 1, 0, 56, 3, + 0, 0, 20, 0, 1, 0, + 76, 3, 0, 0, 20, 0, + 1, 0, 96, 3, 0, 0, + 80, 83, 65, 108, 112, 104, + 97, 84, 101, 115, 116, 69, + 113, 78, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 65, 112, 112, 108, + 121, 70, 111, 103, 0, 99, + 111, 108, 111, 114, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 6, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 112, 105, + 110, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 160, 1, + 0, 0, 116, 1, 0, 0, + 168, 1, 0, 0, 116, 1, + 0, 0, 177, 1, 0, 0, + 188, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 10, 0, + 1, 0, 3, 0, 204, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 56, 1, 0, 0, 72, 1, + 0, 0, 1, 0, 0, 0, + 88, 1, 0, 0, 100, 1, + 0, 0, 109, 1, 0, 0, + 116, 1, 0, 0, 1, 0, + 0, 0, 132, 1, 0, 0, + 0, 0, 0, 0, 109, 1, + 0, 0, 116, 1, 0, 0, + 1, 0, 0, 0, 144, 1, + 0, 0, 56, 1, 0, 0, + 156, 1, 0, 0, 228, 1, + 0, 0, 3, 0, 0, 0, + 244, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 2, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 2, 0, + 228, 176, 0, 8, 228, 160, + 4, 0, 0, 4, 1, 0, + 8, 128, 0, 0, 255, 128, + 0, 0, 255, 176, 0, 0, + 0, 161, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 0, 0, 228, 176, + 35, 0, 0, 2, 1, 0, + 1, 128, 1, 0, 255, 128, + 2, 0, 0, 3, 1, 0, + 1, 128, 1, 0, 0, 128, + 0, 0, 85, 161, 88, 0, + 0, 4, 1, 0, 15, 128, + 1, 0, 0, 128, 0, 0, + 255, 160, 0, 0, 170, 160, + 65, 0, 0, 1, 1, 0, + 15, 128, 4, 0, 0, 4, + 1, 0, 7, 128, 1, 0, + 228, 160, 0, 0, 255, 128, + 0, 0, 228, 129, 4, 0, + 0, 4, 0, 0, 7, 128, + 1, 0, 255, 176, 1, 0, + 228, 128, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 184, 1, 0, 0, + 64, 0, 0, 0, 110, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 130, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 70, 126, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 130, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 69, 0, 0, 9, 242, 0, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 18, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 58, 16, + 70, 16, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, - 10, 128, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, + 50, 0, 0, 11, 18, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 58, 16, 16, 0, + 0, 0, 0, 0, 10, 128, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 49, 0, 0, 9, - 18, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 128, - 129, 0, 0, 0, 1, 0, - 0, 0, 26, 128, 32, 0, + 49, 0, 0, 9, 18, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 128, 129, 0, + 0, 0, 1, 0, 0, 0, + 26, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 55, 0, 0, 11, 18, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 42, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 58, 128, 32, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 55, 0, 0, 11, + 0, 0, 49, 0, 0, 7, 18, 0, 16, 0, 1, 0, 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 42, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 58, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 49, 0, - 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 10, 0, + 1, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 13, 0, 4, 3, 10, 0, 16, 0, 1, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 13, 0, 4, 3, - 10, 0, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 32, 16, 0, - 0, 0, 0, 0, 246, 31, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 96, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 9, + 114, 32, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 96, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 80, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 8, - 0, 0, 86, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 80, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 3, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 8, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNeNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNeNoFog.inc index 6e6f91e6036a34d35337b2e6dd7d4da9ef8de2ac..df910cd7cc3b85d7943d5ad6dc09467ee380dd59 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNeNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestEqNeNoFog.inc @@ -35,13 +35,15 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1.xy + dcl t0 // pin<0,1,2,3> + dcl t1.xy // pin<4,5> dcl_2d s0 + +#line 128 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" texld r0, t1, s0 mad r1.w, r0.w, t0.w, -c0.x - mul r0, r0, t0 - mov oC0, r0 + mul r0, r0, t0 // ::color<0,1,2,3> + mov oC0, r0 // ::PSAlphaTestEqNeNoFog<0,1,2,3> abs r0.x, r1.w add r0.x, r0.x, -c0.y cmp r0, r0.x, c0.w, c0.z @@ -70,17 +72,17 @@ ret const BYTE AlphaTestEffect_PSAlphaTestEqNeNoFog[] = { - 68, 88, 66, 67, 142, 41, - 152, 238, 100, 236, 167, 190, - 1, 194, 156, 60, 169, 254, - 95, 169, 1, 0, 0, 0, - 248, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 207, 117, + 57, 224, 226, 104, 212, 180, + 83, 188, 48, 87, 162, 23, + 138, 157, 1, 0, 0, 0, + 240, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 16, 1, 0, 0, 116, 2, - 0, 0, 196, 2, 0, 0, - 65, 111, 110, 57, 216, 0, - 0, 0, 216, 0, 0, 0, - 0, 2, 255, 255, 164, 0, + 8, 3, 0, 0, 108, 4, + 0, 0, 188, 4, 0, 0, + 65, 111, 110, 57, 208, 2, + 0, 0, 208, 2, 0, 0, + 0, 2, 255, 255, 156, 2, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -88,7 +90,91 @@ const BYTE AlphaTestEffect_PSAlphaTestEqNeNoFog[] = 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, + 0, 2, 255, 255, 254, 255, + 125, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 120, 0, + 0, 0, 11, 0, 0, 0, + 124, 0, 0, 0, 3, 0, + 0, 0, 140, 1, 0, 0, + 212, 0, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 69, 102, 102, 101, 99, + 116, 46, 102, 120, 0, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 252, 1, 0, 0, + 0, 0, 255, 255, 8, 2, + 0, 0, 0, 0, 255, 255, + 20, 2, 0, 0, 128, 0, + 0, 0, 32, 2, 0, 0, + 130, 0, 0, 0, 48, 2, + 0, 0, 128, 0, 0, 0, + 68, 2, 0, 0, 128, 0, + 0, 0, 84, 2, 0, 0, + 130, 0, 0, 0, 96, 2, + 0, 0, 130, 0, 0, 0, + 108, 2, 0, 0, 130, 0, + 0, 0, 124, 2, 0, 0, + 130, 0, 0, 0, 144, 2, + 0, 0, 80, 83, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 69, 113, 78, 101, 78, + 111, 70, 111, 103, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 99, 111, 108, 111, 114, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 110, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 48, 1, + 0, 0, 16, 1, 0, 0, + 56, 1, 0, 0, 68, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 6, 0, 1, 0, + 2, 0, 84, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 212, 0, + 0, 0, 236, 0, 0, 0, + 1, 0, 0, 0, 252, 0, + 0, 0, 0, 0, 0, 0, + 8, 1, 0, 0, 16, 1, + 0, 0, 1, 0, 0, 0, + 32, 1, 0, 0, 212, 0, + 0, 0, 44, 1, 0, 0, + 100, 1, 0, 0, 2, 0, + 0, 0, 116, 1, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, 0, 128, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGt.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGt.inc index 4913c4f2a6d6e318cc5ba185917523768a547d3c..4791ffff1cddff5dec5742c74330b44019a959a7 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGt.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGt.inc @@ -36,18 +36,22 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 91 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" texld r0, t2, s0 mad r1.w, r0.w, t0.w, -c0.x - mul r0, r0, t0 + mul r0, r0, t0 // ::color<0,1,2,3> cmp r1, r1.w, c0.w, c0.z texkill r1 + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r1.xyz, c1, r0.w, -r0 - mad r0.xyz, t1.w, r1, r0 - mov oC0, r0 + mad r0.xyz, t1.w, r1, r0 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSAlphaTestLtGt<0,1,2,3> // approximately 8 instruction slots used (1 texture, 7 arithmetic) ps_4_0 @@ -74,17 +78,17 @@ ret const BYTE AlphaTestEffect_PSAlphaTestLtGt[] = { - 68, 88, 66, 67, 132, 113, - 218, 60, 91, 20, 51, 146, - 238, 127, 172, 137, 199, 66, - 234, 195, 1, 0, 0, 0, - 84, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 241, 64, + 251, 39, 121, 132, 229, 238, + 105, 177, 37, 183, 88, 131, + 121, 143, 1, 0, 0, 0, + 220, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 40, 1, 0, 0, 184, 2, - 0, 0, 32, 3, 0, 0, - 65, 111, 110, 57, 240, 0, - 0, 0, 240, 0, 0, 0, - 0, 2, 255, 255, 188, 0, + 176, 3, 0, 0, 64, 5, + 0, 0, 168, 5, 0, 0, + 65, 111, 110, 57, 120, 3, + 0, 0, 120, 3, 0, 0, + 0, 2, 255, 255, 68, 3, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -92,7 +96,115 @@ const BYTE AlphaTestEffect_PSAlphaTestLtGt[] = 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, + 0, 2, 255, 255, 254, 255, + 161, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 88, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 12, 0, 0, 0, + 200, 0, 0, 0, 4, 0, + 0, 0, 8, 2, 0, 0, + 40, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 69, 102, 102, 101, 99, + 116, 46, 102, 120, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 171, 171, + 40, 0, 0, 0, 119, 0, + 0, 0, 0, 0, 255, 255, + 140, 2, 0, 0, 0, 0, + 255, 255, 152, 2, 0, 0, + 0, 0, 255, 255, 164, 2, + 0, 0, 0, 0, 255, 255, + 176, 2, 0, 0, 91, 0, + 0, 0, 188, 2, 0, 0, + 93, 0, 0, 0, 204, 2, + 0, 0, 91, 0, 0, 0, + 224, 2, 0, 0, 93, 0, + 0, 0, 240, 2, 0, 0, + 93, 0, 0, 0, 4, 3, + 0, 0, 20, 0, 1, 0, + 12, 3, 0, 0, 20, 0, + 1, 0, 32, 3, 0, 0, + 20, 0, 1, 0, 52, 3, + 0, 0, 80, 83, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 76, 116, 71, 116, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 65, 112, + 112, 108, 121, 70, 111, 103, + 0, 99, 111, 108, 111, 114, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 110, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 144, 1, 0, 0, 100, 1, + 0, 0, 152, 1, 0, 0, + 100, 1, 0, 0, 161, 1, + 0, 0, 172, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 10, 0, 1, 0, 3, 0, + 188, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 7, 0, 2, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 40, 1, 0, 0, + 56, 1, 0, 0, 1, 0, + 0, 0, 72, 1, 0, 0, + 84, 1, 0, 0, 93, 1, + 0, 0, 100, 1, 0, 0, + 1, 0, 0, 0, 116, 1, + 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 100, 1, + 0, 0, 1, 0, 0, 0, + 128, 1, 0, 0, 40, 1, + 0, 0, 140, 1, 0, 0, + 212, 1, 0, 0, 3, 0, + 0, 0, 228, 1, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, 0, 128, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGtNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGtNoFog.inc index 8e267e565ba123a4aa666de75468c9e9a3c2ecbf..3163737059122b9ea46efb7a247382d73cc04958 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGtNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_PSAlphaTestLtGtNoFog.inc @@ -35,13 +35,15 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1.xy + dcl t0 // pin<0,1,2,3> + dcl t1.xy // pin<4,5> dcl_2d s0 + +#line 104 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" texld r0, t1, s0 mad r1.w, r0.w, t0.w, -c0.x - mul r0, r0, t0 - mov oC0, r0 + mul r0, r0, t0 // ::color<0,1,2,3> + mov oC0, r0 // ::PSAlphaTestLtGtNoFog<0,1,2,3> cmp r0, r1.w, c0.w, c0.z texkill r0 @@ -67,17 +69,17 @@ ret const BYTE AlphaTestEffect_PSAlphaTestLtGtNoFog[] = { - 68, 88, 66, 67, 217, 179, - 156, 255, 144, 2, 9, 89, - 233, 242, 157, 125, 191, 110, - 15, 216, 1, 0, 0, 0, - 172, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 156, 146, + 229, 145, 172, 111, 60, 108, + 100, 90, 170, 220, 44, 19, + 147, 95, 1, 0, 0, 0, + 148, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 244, 0, 0, 0, 40, 2, - 0, 0, 120, 2, 0, 0, - 65, 111, 110, 57, 188, 0, - 0, 0, 188, 0, 0, 0, - 0, 2, 255, 255, 136, 0, + 220, 2, 0, 0, 16, 4, + 0, 0, 96, 4, 0, 0, + 65, 111, 110, 57, 164, 2, + 0, 0, 164, 2, 0, 0, + 0, 2, 255, 255, 112, 2, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -85,100 +87,182 @@ const BYTE AlphaTestEffect_PSAlphaTestLtGtNoFog[] = 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 4, 0, 0, 4, - 1, 0, 8, 128, 0, 0, - 255, 128, 0, 0, 255, 176, - 0, 0, 0, 161, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 0, - 228, 176, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 15, 128, 1, 0, - 255, 128, 0, 0, 255, 160, - 0, 0, 170, 160, 65, 0, - 0, 1, 0, 0, 15, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 44, 1, 0, 0, - 64, 0, 0, 0, 75, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, + 0, 2, 255, 255, 254, 255, + 121, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 184, 1, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 120, 0, + 0, 0, 9, 0, 0, 0, + 124, 0, 0, 0, 3, 0, + 0, 0, 124, 1, 0, 0, + 196, 0, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 69, 102, 102, 101, 99, + 116, 46, 102, 120, 0, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 236, 1, 0, 0, + 0, 0, 255, 255, 248, 1, + 0, 0, 0, 0, 255, 255, + 4, 2, 0, 0, 104, 0, + 0, 0, 16, 2, 0, 0, + 106, 0, 0, 0, 32, 2, + 0, 0, 104, 0, 0, 0, + 52, 2, 0, 0, 104, 0, + 0, 0, 68, 2, 0, 0, + 106, 0, 0, 0, 80, 2, + 0, 0, 106, 0, 0, 0, + 100, 2, 0, 0, 80, 83, + 65, 108, 112, 104, 97, 84, + 101, 115, 116, 76, 116, 71, + 116, 78, 111, 70, 111, 103, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 99, 111, 108, 111, + 114, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 32, 1, 0, 0, 0, 1, + 0, 0, 40, 1, 0, 0, + 52, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 6, 0, + 1, 0, 2, 0, 68, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 196, 0, 0, 0, 220, 0, + 0, 0, 1, 0, 0, 0, + 236, 0, 0, 0, 0, 0, + 0, 0, 248, 0, 0, 0, + 0, 1, 0, 0, 1, 0, + 0, 0, 16, 1, 0, 0, + 196, 0, 0, 0, 28, 1, + 0, 0, 84, 1, 0, 0, + 2, 0, 0, 0, 100, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 176, + 0, 8, 228, 160, 4, 0, + 0, 4, 1, 0, 8, 128, + 0, 0, 255, 128, 0, 0, + 255, 176, 0, 0, 0, 161, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 0, 0, 228, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 15, 128, + 1, 0, 255, 128, 0, 0, + 255, 160, 0, 0, 170, 160, + 65, 0, 0, 1, 0, 0, + 15, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 44, 1, + 0, 0, 64, 0, 0, 0, + 75, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 242, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 49, 0, - 0, 8, 18, 0, 16, 0, - 1, 0, 0, 0, 58, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 5, 242, 32, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 11, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 42, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 58, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 49, 0, - 0, 7, 18, 0, 16, 0, + 49, 0, 0, 8, 18, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 10, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 54, 0, 0, 5, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 55, 0, + 0, 11, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, + 16, 0, 1, 0, 0, 0, + 42, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 58, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 49, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 13, 0, 4, 3, 10, 0, 16, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 72, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 3, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 13, 0, + 4, 3, 10, 0, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 72, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 0, 0, 15, 15, 0, 0, + 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTest.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTest.inc index c2e32be006cf9e60af31eb31751d0e364a3d140c..bb81399d797cb92bcc77e04bf488f6b00a1e537a 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTest.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTest.inc @@ -40,20 +40,32 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSAlphaTest<12> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xyz, c7.x - mov oT2.xy, v1 + min oT1.w, r0.x, c7.y // ::VSAlphaTest<7> + +#line 43 + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 31 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSAlphaTest<10,11> + mov oPos.w, r0.z // ::VSAlphaTest<13> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSAlphaTest<0,1,2,3> + mov oT1.xyz, c7.x // ::VSAlphaTest<4,5,6> + +#line 38 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mov oT2.xy, v1 // ::VSAlphaTest<8,9> // approximately 12 instruction slots used vs_4_0 @@ -78,17 +90,17 @@ ret const BYTE AlphaTestEffect_VSAlphaTest[] = { - 68, 88, 66, 67, 4, 149, - 62, 151, 78, 3, 139, 252, - 103, 187, 235, 135, 118, 107, - 194, 7, 1, 0, 0, 0, - 164, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 140, 250, + 248, 103, 246, 98, 11, 172, + 23, 163, 14, 30, 10, 157, + 29, 143, 1, 0, 0, 0, + 252, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 100, 1, 0, 0, 192, 2, - 0, 0, 24, 3, 0, 0, - 65, 111, 110, 57, 44, 1, - 0, 0, 44, 1, 0, 0, - 0, 2, 254, 255, 236, 0, + 188, 4, 0, 0, 24, 6, + 0, 0, 112, 6, 0, 0, + 65, 111, 110, 57, 132, 4, + 0, 0, 132, 4, 0, 0, + 0, 2, 254, 255, 68, 4, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -98,140 +110,282 @@ const BYTE AlphaTestEffect_VSAlphaTest[] = 0, 0, 0, 0, 3, 0, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 7, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 213, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 5, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 7, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, + 2, 0, 0, 0, 192, 0, + 0, 0, 15, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 236, 2, 0, 0, + 64, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 65, 108, 112, + 104, 97, 84, 101, 115, 116, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 171, 171, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 92, 3, 0, 0, 0, 0, + 255, 255, 116, 3, 0, 0, + 0, 0, 255, 255, 128, 3, + 0, 0, 43, 0, 0, 0, + 140, 3, 0, 0, 14, 0, + 0, 0, 156, 3, 0, 0, + 14, 0, 0, 0, 172, 3, + 0, 0, 14, 0, 0, 0, + 188, 3, 0, 0, 43, 0, + 0, 0, 204, 3, 0, 0, + 43, 0, 0, 0, 220, 3, + 0, 0, 43, 0, 0, 0, + 236, 3, 0, 0, 31, 0, + 1, 0, 252, 3, 0, 0, + 31, 0, 1, 0, 16, 4, + 0, 0, 44, 0, 0, 0, + 28, 4, 0, 0, 45, 0, + 0, 0, 40, 4, 0, 0, + 38, 0, 1, 0, 52, 4, + 0, 0, 86, 83, 65, 108, + 112, 104, 97, 84, 101, 115, + 116, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 76, 1, 0, 0, + 84, 1, 0, 0, 100, 1, + 0, 0, 84, 1, 0, 0, + 109, 1, 0, 0, 120, 1, + 0, 0, 136, 1, 0, 0, + 84, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 14, 0, + 1, 0, 4, 0, 148, 1, + 0, 0, 3, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 6, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 10, 0, 0, 0, + 10, 0, 11, 0, 255, 255, + 255, 255, 11, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 13, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 14, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171, 171, 171, + 28, 2, 0, 0, 84, 1, + 0, 0, 109, 1, 0, 0, + 120, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 6, 0, + 1, 0, 2, 0, 40, 2, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 101, 2, + 0, 0, 84, 1, 0, 0, + 76, 1, 0, 0, 84, 1, + 0, 0, 100, 1, 0, 0, + 108, 2, 0, 0, 124, 2, + 0, 0, 136, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 152, 2, 0, 0, 7, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 8, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 9, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 64, 1, 0, 0, + 180, 1, 0, 0, 7, 0, + 0, 0, 196, 1, 0, 0, + 64, 1, 0, 0, 24, 2, + 0, 0, 56, 2, 0, 0, + 2, 0, 0, 0, 72, 2, + 0, 0, 0, 0, 0, 0, + 96, 2, 0, 0, 184, 2, + 0, 0, 3, 0, 0, 0, + 200, 2, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 7, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 5, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 2, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, 0, 0, 0, 128, 7, 0, - 85, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 3, 0, 228, 160, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 7, 0, 85, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 4, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 6, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 1, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 7, 224, - 7, 0, 0, 160, 1, 0, - 0, 2, 2, 0, 3, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 84, 1, 0, 0, 64, 0, - 1, 0, 85, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, + 1, 128, 0, 0, 228, 144, + 3, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 4, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 6, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 1, 0, + 228, 160, 1, 0, 0, 2, + 1, 0, 7, 224, 7, 0, + 0, 160, 1, 0, 0, 2, + 2, 0, 3, 224, 1, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 84, 1, + 0, 0, 64, 0, 1, 0, + 85, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 2, 64, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 32, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 8, + 114, 32, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 2, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 5, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 6, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 79, 83, 71, 78, 132, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, + 15, 15, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 110, 0, + 3, 3, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 171, 171, 79, 83, + 71, 78, 132, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 119, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 104, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 171 + 2, 0, 0, 0, 3, 12, + 0, 0, 119, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 0, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestNoFog.inc index 308705f6b1ff26a55b0b77c2453ddd21c1f1d273..7687d1345acf59d7e52046fa9557fa7fb1e43205 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestNoFog.inc @@ -38,16 +38,24 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c4 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xy, v1 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSAlphaTestNoFog<8> + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 45 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSAlphaTestNoFog<6,7> + mov oPos.w, r0.z // ::VSAlphaTestNoFog<9> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSAlphaTestNoFog<0,1,2,3> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mov oT1.xy, v1 // ::VSAlphaTestNoFog<4,5> // approximately 8 instruction slots used vs_4_0 @@ -69,17 +77,17 @@ ret const BYTE AlphaTestEffect_VSAlphaTestNoFog[] = { - 68, 88, 66, 67, 79, 234, - 189, 22, 246, 154, 20, 26, - 68, 213, 247, 236, 90, 124, - 169, 133, 1, 0, 0, 0, - 236, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 248, 2, + 209, 10, 206, 132, 220, 115, + 131, 91, 104, 83, 66, 167, + 100, 45, 1, 0, 0, 0, + 8, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 16, 1, 0, 0, 32, 2, - 0, 0, 120, 2, 0, 0, - 65, 111, 110, 57, 216, 0, - 0, 0, 216, 0, 0, 0, - 0, 2, 254, 255, 152, 0, + 44, 4, 0, 0, 60, 5, + 0, 0, 148, 5, 0, 0, + 65, 111, 110, 57, 244, 3, + 0, 0, 244, 3, 0, 0, + 0, 2, 254, 255, 180, 3, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -89,109 +97,242 @@ const BYTE AlphaTestEffect_VSAlphaTestNoFog[] = 0, 0, 0, 0, 4, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 4, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, + 0, 2, 254, 255, 254, 255, + 198, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 236, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 10, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 176, 2, 0, 0, + 24, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 65, 108, 112, + 104, 97, 84, 101, 115, 116, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 171, 171, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 32, 3, 0, 0, 0, 0, + 255, 255, 44, 3, 0, 0, + 43, 0, 0, 0, 56, 3, + 0, 0, 43, 0, 0, 0, + 72, 3, 0, 0, 43, 0, + 0, 0, 88, 3, 0, 0, + 43, 0, 0, 0, 104, 3, + 0, 0, 45, 0, 1, 0, + 120, 3, 0, 0, 45, 0, + 1, 0, 140, 3, 0, 0, + 44, 0, 0, 0, 152, 3, + 0, 0, 52, 0, 1, 0, + 164, 3, 0, 0, 86, 83, + 65, 108, 112, 104, 97, 84, + 101, 115, 116, 78, 111, 70, + 111, 103, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 41, 1, + 0, 0, 52, 1, 0, 0, + 68, 1, 0, 0, 80, 1, + 0, 0, 96, 1, 0, 0, + 52, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 10, 0, + 1, 0, 3, 0, 108, 1, + 0, 0, 2, 0, 0, 0, + 255, 255, 255, 255, 8, 0, + 255, 255, 6, 0, 0, 0, + 6, 0, 7, 0, 255, 255, + 255, 255, 7, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 9, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 9, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171, 171, 171, + 212, 1, 0, 0, 52, 1, + 0, 0, 68, 1, 0, 0, + 80, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 6, 0, + 1, 0, 2, 0, 224, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 29, 2, + 0, 0, 52, 1, 0, 0, + 41, 1, 0, 0, 52, 1, + 0, 0, 36, 2, 0, 0, + 48, 2, 0, 0, 64, 2, + 0, 0, 76, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 92, 2, 0, 0, 3, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 4, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 5, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 24, 1, 0, 0, + 132, 1, 0, 0, 5, 0, + 0, 0, 148, 1, 0, 0, + 24, 1, 0, 0, 208, 1, + 0, 0, 240, 1, 0, 0, + 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 24, 2, 0, 0, 124, 2, + 0, 0, 3, 0, 0, 0, + 140, 2, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 4, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 5, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 1, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 3, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 8, 1, 0, 0, 64, 0, - 1, 0, 66, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, + 1, 128, 0, 0, 228, 144, + 2, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 3, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 5, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 1, 0, + 228, 160, 1, 0, 0, 2, + 1, 0, 3, 224, 1, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 8, 1, + 0, 0, 64, 0, 1, 0, + 66, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, + 0, 0, 101, 0, 0, 3, 50, 32, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 50, 32, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 1, 0, + 0, 0, 17, 0, 0, 8, + 18, 32, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 5, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 2, 0, + 130, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, - 2, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 79, 83, 71, 78, - 108, 0, 0, 0, 3, 0, + 7, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 80, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 86, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 95, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, + 0, 0, 3, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, - 82, 68, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 82, 68, 0, 171, 171, 171, + 79, 83, 71, 78, 108, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 12, 0, 0, 95, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVc.inc index e2ac08e7d29f9441b2f4fe7e6743fd9fbcace005..ad33aa9c8f41fdce48663f29ba6e3c34d01cd136 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVc.inc @@ -41,21 +41,35 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7,8,9> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSAlphaTestVc<12> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - mul oT0, v2, c1 - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xyz, c7.x - mov oT2.xy, v1 + min oT1.w, r0.x, c7.y // ::VSAlphaTestVc<7> + +#line 67 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mul oT0, v2, c1 // ::VSAlphaTestVc<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSAlphaTestVc<10,11> + mov oPos.w, r0.z // ::VSAlphaTestVc<13> + +#line 45 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT1.xyz, c7.x // ::VSAlphaTestVc<4,5,6> + +#line 66 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mov oT2.xy, v1 // ::VSAlphaTestVc<8,9> // approximately 12 instruction slots used vs_4_0 @@ -81,17 +95,17 @@ ret const BYTE AlphaTestEffect_VSAlphaTestVc[] = { - 68, 88, 66, 67, 69, 205, - 186, 194, 49, 115, 174, 223, - 225, 69, 58, 248, 175, 79, - 119, 92, 1, 0, 0, 0, - 228, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 84, 82, + 52, 236, 254, 37, 130, 12, + 230, 48, 204, 9, 82, 225, + 210, 117, 1, 0, 0, 0, + 96, 7, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 116, 1, 0, 0, 228, 2, - 0, 0, 88, 3, 0, 0, - 65, 111, 110, 57, 60, 1, - 0, 0, 60, 1, 0, 0, - 0, 2, 254, 255, 252, 0, + 240, 4, 0, 0, 96, 6, + 0, 0, 212, 6, 0, 0, + 65, 111, 110, 57, 184, 4, + 0, 0, 184, 4, 0, 0, + 0, 2, 254, 255, 120, 4, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -101,150 +115,299 @@ const BYTE AlphaTestEffect_VSAlphaTestVc[] = 0, 0, 0, 0, 3, 0, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 7, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 222, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 76, 3, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 5, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 7, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 7, 0, - 85, 160, 5, 0, 0, 3, - 0, 0, 15, 224, 2, 0, - 228, 144, 1, 0, 228, 160, + 2, 0, 0, 0, 192, 0, + 0, 0, 16, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 16, 3, 0, 0, + 72, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 65, 108, 112, + 104, 97, 84, 101, 115, 116, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 171, 171, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 128, 3, 0, 0, 0, 0, + 255, 255, 152, 3, 0, 0, + 0, 0, 255, 255, 164, 3, + 0, 0, 0, 0, 255, 255, + 176, 3, 0, 0, 43, 0, + 0, 0, 188, 3, 0, 0, + 14, 0, 0, 0, 204, 3, + 0, 0, 14, 0, 0, 0, + 220, 3, 0, 0, 14, 0, + 0, 0, 236, 3, 0, 0, + 67, 0, 1, 0, 252, 3, + 0, 0, 43, 0, 0, 0, + 12, 4, 0, 0, 43, 0, + 0, 0, 28, 4, 0, 0, + 43, 0, 0, 0, 44, 4, + 0, 0, 59, 0, 1, 0, + 60, 4, 0, 0, 59, 0, + 1, 0, 80, 4, 0, 0, + 45, 0, 0, 0, 92, 4, + 0, 0, 66, 0, 1, 0, + 104, 4, 0, 0, 86, 83, + 65, 108, 112, 104, 97, 84, + 101, 115, 116, 86, 99, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 86, 1, 0, 0, + 96, 1, 0, 0, 112, 1, + 0, 0, 96, 1, 0, 0, + 121, 1, 0, 0, 132, 1, + 0, 0, 148, 1, 0, 0, + 96, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 14, 0, + 1, 0, 4, 0, 160, 1, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 7, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 12, 0, 0, 0, + 10, 0, 11, 0, 255, 255, + 255, 255, 13, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 14, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 15, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 67, 111, 108, + 111, 114, 0, 171, 40, 2, + 0, 0, 96, 1, 0, 0, + 121, 1, 0, 0, 132, 1, + 0, 0, 49, 2, 0, 0, + 96, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 10, 0, + 1, 0, 3, 0, 56, 2, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 9, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 137, 2, + 0, 0, 96, 1, 0, 0, + 86, 1, 0, 0, 96, 1, + 0, 0, 112, 1, 0, 0, + 144, 2, 0, 0, 160, 2, + 0, 0, 172, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 188, 2, 0, 0, 9, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 10, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 11, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 72, 1, 0, 0, + 192, 1, 0, 0, 7, 0, + 0, 0, 208, 1, 0, 0, + 72, 1, 0, 0, 36, 2, + 0, 0, 80, 2, 0, 0, + 3, 0, 0, 0, 96, 2, + 0, 0, 0, 0, 0, 0, + 132, 2, 0, 0, 220, 2, + 0, 0, 3, 0, 0, 0, + 236, 2, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 7, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 5, 0, 228, 160, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, 228, 144, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 4, 0, + 2, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 7, 0, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 7, 0, 85, 160, + 5, 0, 0, 3, 0, 0, + 15, 224, 2, 0, 228, 144, + 1, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 3, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 6, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 1, 0, 7, 224, 7, 0, - 0, 160, 1, 0, 0, 2, - 2, 0, 3, 224, 1, 0, - 228, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 104, 1, - 0, 0, 64, 0, 1, 0, - 90, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, + 0, 0, 2, 128, 0, 0, + 228, 144, 4, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 6, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 1, 0, + 7, 224, 7, 0, 0, 160, + 1, 0, 0, 2, 2, 0, + 3, 224, 1, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 104, 1, 0, 0, + 64, 0, 1, 0, 90, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 2, 64, + 95, 0, 0, 3, 50, 16, + 16, 0, 1, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 2, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 32, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 8, + 114, 32, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 2, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 5, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 6, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 108, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 108, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 101, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 67, 79, 76, 79, 82, + 0, 171, 79, 83, 71, 78, + 132, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 92, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 101, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, + 0, 0, 3, 12, 0, 0, + 119, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, 84, 69, 88, 67, 79, 79, - 82, 68, 0, 67, 79, 76, - 79, 82, 0, 171, 79, 83, - 71, 78, 132, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 104, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 119, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 15, 0, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 171 + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVcNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVcNoFog.inc index d80383f4abbeff952b228a5e19908264e68d803d..ac487f1ca95bffce2fec3a41e983710bdbc041b5 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVcNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/AlphaTestEffect_VSAlphaTestVcNoFog.inc @@ -39,17 +39,27 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c4 - mul oT0, v2, c1 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xy, v1 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7,8,9> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSAlphaTestVcNoFog<8> + +#line 82 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mul oT0, v2, c1 // ::VSAlphaTestVcNoFog<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 74 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\AlphaTestEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSAlphaTestVcNoFog<6,7> + mov oPos.w, r0.z // ::VSAlphaTestVcNoFog<9> + +#line 81 + mov oT1.xy, v1 // ::VSAlphaTestVcNoFog<4,5> // approximately 8 instruction slots used vs_4_0 @@ -72,17 +82,17 @@ ret const BYTE AlphaTestEffect_VSAlphaTestVcNoFog[] = { - 68, 88, 66, 67, 74, 78, - 144, 38, 108, 118, 154, 251, - 203, 88, 218, 105, 165, 123, - 55, 217, 1, 0, 0, 0, - 44, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 74, 170, + 254, 68, 17, 213, 142, 220, + 24, 197, 43, 129, 118, 164, + 64, 53, 1, 0, 0, 0, + 104, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 32, 1, 0, 0, 68, 2, - 0, 0, 184, 2, 0, 0, - 65, 111, 110, 57, 232, 0, - 0, 0, 232, 0, 0, 0, - 0, 2, 254, 255, 168, 0, + 92, 4, 0, 0, 128, 5, + 0, 0, 244, 5, 0, 0, + 65, 111, 110, 57, 36, 4, + 0, 0, 36, 4, 0, 0, + 0, 2, 254, 255, 228, 3, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -92,7 +102,145 @@ const BYTE AlphaTestEffect_VSAlphaTestVcNoFog[] = 0, 0, 0, 0, 4, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, + 0, 2, 254, 255, 254, 255, + 206, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 12, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 11, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 208, 2, 0, 0, + 32, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 65, 108, 112, + 104, 97, 84, 101, 115, 116, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 171, 171, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 64, 3, 0, 0, 0, 0, + 255, 255, 76, 3, 0, 0, + 0, 0, 255, 255, 88, 3, + 0, 0, 43, 0, 0, 0, + 100, 3, 0, 0, 82, 0, + 1, 0, 116, 3, 0, 0, + 43, 0, 0, 0, 132, 3, + 0, 0, 43, 0, 0, 0, + 148, 3, 0, 0, 43, 0, + 0, 0, 164, 3, 0, 0, + 74, 0, 1, 0, 180, 3, + 0, 0, 74, 0, 1, 0, + 200, 3, 0, 0, 81, 0, + 1, 0, 212, 3, 0, 0, + 86, 83, 65, 108, 112, 104, + 97, 84, 101, 115, 116, 86, + 99, 78, 111, 70, 111, 103, + 0, 68, 105, 102, 102, 117, + 115, 101, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 51, 1, 0, 0, 60, 1, + 0, 0, 76, 1, 0, 0, + 88, 1, 0, 0, 104, 1, + 0, 0, 60, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 10, 0, 1, 0, 3, 0, + 116, 1, 0, 0, 3, 0, + 0, 0, 255, 255, 255, 255, + 8, 0, 255, 255, 4, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 8, 0, + 0, 0, 6, 0, 7, 0, + 255, 255, 255, 255, 9, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 9, 0, 10, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 67, + 111, 108, 111, 114, 0, 171, + 220, 1, 0, 0, 60, 1, + 0, 0, 76, 1, 0, 0, + 88, 1, 0, 0, 229, 1, + 0, 0, 60, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 10, 0, 1, 0, 3, 0, + 236, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 2, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 9, 0, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 61, 2, 0, 0, 60, 1, + 0, 0, 51, 1, 0, 0, + 60, 1, 0, 0, 68, 2, + 0, 0, 80, 2, 0, 0, + 96, 2, 0, 0, 108, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 124, 2, 0, 0, + 5, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 6, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 7, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 32, 1, + 0, 0, 140, 1, 0, 0, + 5, 0, 0, 0, 156, 1, + 0, 0, 32, 1, 0, 0, + 216, 1, 0, 0, 4, 2, + 0, 0, 3, 0, 0, 0, + 20, 2, 0, 0, 0, 0, + 0, 0, 56, 2, 0, 0, + 156, 2, 0, 0, 3, 0, + 0, 0, 172, 2, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, 0, 2, 5, 0, 0, 128, 0, 0, 15, 144, 31, 0, 0, 2, 5, 0, 1, 128, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasic.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasic.inc index 4781a8c5b2119bf4b2e61f1f12fa33be730af690..9fbb00ea0e27fe7b7a565608e7fed4256843e07b 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasic.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasic.inc @@ -28,13 +28,15 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r0.xyz, c0, t0.w, -t0 - mov r1.xyz, t0 - mad r0.xyz, t1.w, r0, r1 + mov r1.xyz, t0 // pin<0,1,2> + mad r0.xyz, t1.w, r0, r1 // ApplyFog::color<0,1,2> mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::PSBasic<0,1,2,3> // approximately 5 instruction slots used ps_4_0 @@ -52,17 +54,17 @@ ret const BYTE BasicEffect_PSBasic[] = { - 68, 88, 66, 67, 132, 106, - 64, 52, 44, 8, 201, 31, - 156, 78, 243, 147, 144, 166, - 2, 49, 1, 0, 0, 0, - 4, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 114, 189, + 168, 120, 224, 136, 133, 44, + 131, 14, 127, 119, 149, 15, + 203, 133, 1, 0, 0, 0, + 200, 3, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 212, 0, 0, 0, 136, 1, - 0, 0, 208, 1, 0, 0, - 65, 111, 110, 57, 156, 0, - 0, 0, 156, 0, 0, 0, - 0, 2, 255, 255, 108, 0, + 152, 2, 0, 0, 76, 3, + 0, 0, 148, 3, 0, 0, + 65, 111, 110, 57, 96, 2, + 0, 0, 96, 2, 0, 0, + 0, 2, 255, 255, 48, 2, 0, 0, 48, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -70,72 +72,148 @@ const BYTE BasicEffect_PSBasic[] = 48, 0, 0, 0, 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 15, 176, - 4, 0, 0, 4, 0, 0, - 7, 128, 0, 0, 228, 160, - 0, 0, 255, 176, 0, 0, - 228, 177, 1, 0, 0, 2, - 1, 0, 7, 128, 0, 0, - 228, 176, 4, 0, 0, 4, - 0, 0, 7, 128, 1, 0, - 255, 176, 0, 0, 228, 128, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 128, - 0, 0, 255, 176, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 172, 0, 0, 0, 64, 0, - 0, 0, 43, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 98, 16, - 0, 3, 130, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 50, 0, 0, 11, 114, 0, + 254, 255, 112, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 148, 1, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 112, 0, 0, 0, 7, 0, + 0, 0, 116, 0, 0, 0, + 3, 0, 0, 0, 88, 1, + 0, 0, 172, 0, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 67, 111, 109, 109, 111, 110, + 46, 102, 120, 104, 0, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 200, 1, 0, 0, + 0, 0, 255, 255, 212, 1, + 0, 0, 20, 0, 0, 0, + 224, 1, 0, 0, 20, 0, + 0, 0, 244, 1, 0, 0, + 20, 0, 0, 0, 0, 2, + 0, 0, 20, 0, 0, 0, + 20, 2, 0, 0, 20, 0, + 0, 0, 32, 2, 0, 0, + 80, 83, 66, 97, 115, 105, + 99, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 65, 112, 112, 108, 121, 70, + 111, 103, 0, 99, 111, 108, + 111, 114, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 0, 1, 0, 0, + 224, 0, 0, 0, 8, 1, + 0, 0, 224, 0, 0, 0, + 5, 0, 0, 0, 1, 0, + 8, 0, 1, 0, 2, 0, + 20, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 7, 0, 3, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 0, 0, + 0, 0, 172, 0, 0, 0, + 180, 0, 0, 0, 1, 0, + 0, 0, 196, 0, 0, 0, + 208, 0, 0, 0, 217, 0, + 0, 0, 224, 0, 0, 0, + 1, 0, 0, 0, 240, 0, + 0, 0, 172, 0, 0, 0, + 252, 0, 0, 0, 36, 1, + 0, 0, 3, 0, 0, 0, + 52, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 15, 176, 4, 0, 0, 4, + 0, 0, 7, 128, 0, 0, + 228, 160, 0, 0, 255, 176, + 0, 0, 228, 177, 1, 0, + 0, 2, 1, 0, 7, 128, + 0, 0, 228, 176, 4, 0, + 0, 4, 0, 0, 7, 128, + 1, 0, 255, 176, 0, 0, + 228, 128, 1, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 128, 0, 0, 255, 176, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 172, 0, 0, 0, + 64, 0, 0, 0, 43, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 13, 0, 0, 0, - 246, 31, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, + 98, 16, 0, 3, 130, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 246, 31, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 70, 18, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 31, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 18, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 16, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 16, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 64, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 56, 0, 0, 0, 1, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 64, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 8, 0, 0, - 67, 79, 76, 79, 82, 0, - 171, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 56, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 8, + 0, 0, 67, 79, 76, 79, + 82, 0, 171, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicNoFog.inc index fa3eb521b258784409843bc076d679efb58891ea..04d4c4197a910d376f805810f1a5483424dcd3c9 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicNoFog.inc @@ -20,8 +20,10 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - mov oC0, t0 + dcl t0 // pin<0,1,2,3> + +#line 337 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mov oC0, t0 // ::PSBasicNoFog<0,1,2,3> // approximately 1 instruction slot used ps_4_0 @@ -34,52 +36,108 @@ ret const BYTE BasicEffect_PSBasicNoFog[] = { - 68, 88, 66, 67, 218, 245, - 81, 3, 21, 86, 134, 132, - 242, 64, 147, 169, 186, 94, - 60, 67, 1, 0, 0, 0, - 32, 1, 0, 0, 4, 0, + 68, 88, 66, 67, 39, 255, + 148, 232, 240, 134, 106, 55, + 30, 193, 83, 236, 196, 128, + 65, 237, 1, 0, 0, 0, + 108, 2, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 124, 0, 0, 0, 188, 0, - 0, 0, 236, 0, 0, 0, - 65, 111, 110, 57, 68, 0, - 0, 0, 68, 0, 0, 0, - 0, 2, 255, 255, 32, 0, + 200, 1, 0, 0, 8, 2, + 0, 0, 56, 2, 0, 0, + 65, 111, 110, 57, 144, 1, + 0, 0, 144, 1, 0, 0, + 0, 2, 255, 255, 108, 1, 0, 0, 36, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 176, - 255, 255, 0, 0, 83, 72, - 68, 82, 56, 0, 0, 0, - 64, 0, 0, 0, 14, 0, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 40, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 254, 255, 82, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 28, 1, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 116, 0, 0, 0, 2, 0, + 0, 0, 120, 0, 0, 0, + 2, 0, 0, 0, 244, 0, + 0, 0, 136, 0, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 66, 97, 115, 105, 99, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 171, 40, 0, + 0, 0, 0, 0, 255, 255, + 80, 1, 0, 0, 81, 1, + 0, 0, 92, 1, 0, 0, + 80, 83, 66, 97, 115, 105, + 99, 78, 111, 70, 111, 103, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 184, 0, 0, 0, 192, 0, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 0, 0, 0, 0, 136, 0, + 0, 0, 152, 0, 0, 0, + 1, 0, 0, 0, 168, 0, + 0, 0, 136, 0, 0, 0, + 180, 0, 0, 0, 216, 0, + 0, 0, 1, 0, 0, 0, + 232, 0, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 176, 255, 255, 0, 0, + 83, 72, 68, 82, 56, 0, + 0, 0, 64, 0, 0, 0, + 14, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 40, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 67, 79, 76, 79, 82, 0, - 171, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 67, 79, 76, 79, + 82, 0, 171, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLighting.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLighting.inc index 1cbd36cedcbddfadc32a880f876dfeb9e011aa05..aaae3cbd9831670338b2ed1f64dc5bd6428c3c07 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLighting.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLighting.inc @@ -30,51 +30,87 @@ // ps_2_0 def c14, 1, 0, 0, 0 - dcl t0 - dcl t1.xyz - dcl t2 - nrm r0.xyz, t1 - dp3 r1.x, -c3, r0 - dp3 r1.y, -c4, r0 - dp3 r1.z, -c5, r0 - cmp r2.xyz, r1, c14.x, c14.y - mul r1.xyz, r1, r2 + dcl t0 // pin<0,1,2,3> + dcl t1.xyz // pin<4,5,6> + dcl t2 // pin<7,8,9,10> + +#line 411 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + nrm r0.xyz, t1 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r1.x, -c3, r0 // ::dotL<0> + dp3 r1.y, -c4, r0 // ::dotL<1> + dp3 r1.z, -c5, r0 // ::dotL<2> + +#line 39 + cmp r2.xyz, r1, c14.x, c14.y // ::zeroL<0,1,2> + mul r1.xyz, r1, r2 // ::diffuse<0,1,2> + +#line 410 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" add r3.xyz, -t0, c12 dp3 r0.w, r3, r3 rsq r0.w, r0.w + +#line 33 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mad r4.xyz, r3, r0.w, -c3 - nrm r5.xyz, r4 - dp3 r4.x, r5, r0 + nrm r5.xyz, r4 // ::halfVectors<0,1,2> + +#line 37 + dp3 r4.x, r5, r0 // ::dotH<0> + +#line 33 mad r5.xyz, r3, r0.w, -c4 mad r3.xyz, r3, r0.w, -c5 - nrm r6.xyz, r3 - dp3 r4.z, r6, r0 - nrm r3.xyz, r5 - dp3 r4.y, r3, r0 + nrm r6.xyz, r3 // ::halfVectors<6,7,8> + +#line 37 + dp3 r4.z, r6, r0 // ::dotH<2> + +#line 33 + nrm r3.xyz, r5 // ::halfVectors<3,4,5> + +#line 37 + dp3 r4.y, r3, r0 // ::dotH<1> + +#line 42 mul r0.xyz, r2, r4 cmp r0.xyz, r4, r0, c14.y log r2.x, r0.x log r2.y, r0.y log r2.z, r0.z mul r0.xyz, r2, c2.w - exp r1.w, r0.y + exp r1.w, r0.y // ::specular<1> + +#line 47 mul r2.xyz, r1.w, c10 - exp r1.w, r0.x - exp r2.w, r0.z + +#line 42 + exp r1.w, r0.x // ::specular<0> + exp r2.w, r0.z // ::specular<2> + +#line 47 mad r0.xyz, r1.w, c9, r2 mad r0.xyz, r2.w, c11, r0 - mul r0.xyz, r0, c2 + mul r0.xyz, r0, c2 // ::result<3,4,5> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mul r0.xyz, r0, t2.w + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mul r2.xyz, r1.y, c7 mad r2.xyz, r1.x, c6, r2 mad r1.xyz, r1.z, c8, r2 - mov r2.xyz, c0 - mad r1.xyz, r1, r2, c1 - mad r0.xyz, t2, r1, r0 + mov r2.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad r1.xyz, r1, r2, c1 // ::result<0,1,2> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r0.xyz, t2, r1, r0 // AddSpecular::color<0,1,2> + +#line 20 mad r1.xyz, c13, t2.w, -r0 - mad r0.xyz, t0.w, r1, r0 + mad r0.xyz, t0.w, r1, r0 // ApplyFog::color<0,1,2> mov r0.w, t2.w - mov oC0, r0 + mov oC0, r0 // ::PSBasicPixelLighting<0,1,2,3> // approximately 50 instruction slots used ps_4_0 @@ -135,17 +171,17 @@ ret const BYTE BasicEffect_PSBasicPixelLighting[] = { - 68, 88, 66, 67, 202, 236, - 241, 26, 240, 245, 195, 184, - 101, 180, 221, 101, 7, 84, - 110, 89, 1, 0, 0, 0, - 208, 9, 0, 0, 4, 0, + 68, 88, 66, 67, 227, 187, + 214, 151, 65, 25, 169, 106, + 56, 182, 107, 171, 138, 197, + 93, 49, 1, 0, 0, 0, + 252, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 72, 3, 0, 0, 52, 9, - 0, 0, 156, 9, 0, 0, - 65, 111, 110, 57, 16, 3, - 0, 0, 16, 3, 0, 0, - 0, 2, 255, 255, 224, 2, + 116, 9, 0, 0, 96, 15, + 0, 0, 200, 15, 0, 0, + 65, 111, 110, 57, 60, 9, + 0, 0, 60, 9, 0, 0, + 0, 2, 255, 255, 12, 9, 0, 0, 48, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -153,405 +189,668 @@ const BYTE BasicEffect_PSBasicPixelLighting[] = 48, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 2, 255, 255, - 81, 0, 0, 5, 14, 0, - 15, 160, 0, 0, 128, 63, + 254, 255, 138, 1, 68, 66, + 85, 71, 40, 0, 0, 0, + 252, 5, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 1, 0, 0, 46, 0, + 0, 0, 16, 1, 0, 0, + 13, 0, 0, 0, 248, 4, + 0, 0, 180, 2, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 66, 97, 115, 105, 99, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 40, 0, + 0, 0, 115, 0, 0, 0, + 188, 0, 0, 0, 0, 0, + 255, 255, 48, 6, 0, 0, + 0, 0, 255, 255, 72, 6, + 0, 0, 0, 0, 255, 255, + 84, 6, 0, 0, 0, 0, + 255, 255, 96, 6, 0, 0, + 155, 1, 0, 0, 108, 6, + 0, 0, 36, 0, 1, 0, + 120, 6, 0, 0, 36, 0, + 1, 0, 136, 6, 0, 0, + 36, 0, 1, 0, 152, 6, + 0, 0, 39, 0, 1, 0, + 168, 6, 0, 0, 41, 0, + 1, 0, 188, 6, 0, 0, + 154, 1, 0, 0, 204, 6, + 0, 0, 154, 1, 0, 0, + 220, 6, 0, 0, 154, 1, + 0, 0, 236, 6, 0, 0, + 33, 0, 1, 0, 248, 6, + 0, 0, 33, 0, 1, 0, + 12, 7, 0, 0, 37, 0, + 1, 0, 24, 7, 0, 0, + 33, 0, 1, 0, 40, 7, + 0, 0, 33, 0, 1, 0, + 60, 7, 0, 0, 33, 0, + 1, 0, 80, 7, 0, 0, + 37, 0, 1, 0, 92, 7, + 0, 0, 33, 0, 1, 0, + 108, 7, 0, 0, 37, 0, + 1, 0, 120, 7, 0, 0, + 42, 0, 1, 0, 136, 7, + 0, 0, 42, 0, 1, 0, + 152, 7, 0, 0, 42, 0, + 1, 0, 172, 7, 0, 0, + 42, 0, 1, 0, 184, 7, + 0, 0, 42, 0, 1, 0, + 196, 7, 0, 0, 42, 0, + 1, 0, 208, 7, 0, 0, + 42, 0, 1, 0, 224, 7, + 0, 0, 47, 0, 1, 0, + 236, 7, 0, 0, 42, 0, + 1, 0, 252, 7, 0, 0, + 42, 0, 1, 0, 8, 8, + 0, 0, 47, 0, 1, 0, + 20, 8, 0, 0, 47, 0, + 1, 0, 40, 8, 0, 0, + 47, 0, 1, 0, 60, 8, + 0, 0, 26, 0, 2, 0, + 76, 8, 0, 0, 46, 0, + 1, 0, 92, 8, 0, 0, + 46, 0, 1, 0, 108, 8, + 0, 0, 46, 0, 1, 0, + 128, 8, 0, 0, 46, 0, + 1, 0, 148, 8, 0, 0, + 46, 0, 1, 0, 160, 8, + 0, 0, 26, 0, 2, 0, + 180, 8, 0, 0, 20, 0, + 2, 0, 200, 8, 0, 0, + 20, 0, 2, 0, 220, 8, + 0, 0, 20, 0, 2, 0, + 240, 8, 0, 0, 20, 0, + 2, 0, 252, 8, 0, 0, + 80, 97, 114, 97, 109, 101, + 116, 101, 114, 115, 0, 68, + 105, 102, 102, 117, 115, 101, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 39, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 80, 83, + 66, 97, 115, 105, 99, 80, + 105, 120, 101, 108, 76, 105, + 103, 104, 116, 105, 110, 103, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 45, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 65, 112, 112, 108, + 121, 70, 111, 103, 0, 99, + 111, 108, 111, 114, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 43, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 65, 100, + 100, 83, 112, 101, 99, 117, + 108, 97, 114, 0, 41, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 111, + 116, 72, 0, 171, 171, 171, + 15, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 19, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 21, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 5, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 6, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 7, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 18, 0, 0, 0, 6, 0, + 7, 0, 8, 0, 255, 255, + 20, 0, 0, 0, 3, 0, + 4, 0, 5, 0, 255, 255, + 112, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 87, 83, 0, 78, 111, 114, + 109, 97, 108, 87, 83, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 236, 3, 0, 0, + 248, 2, 0, 0, 247, 3, + 0, 0, 52, 3, 0, 0, + 0, 4, 0, 0, 248, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 11, 0, 1, 0, + 3, 0, 8, 4, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 9, 0, 10, 0, + 114, 101, 115, 117, 108, 116, + 0, 83, 112, 101, 99, 117, + 108, 97, 114, 0, 0, 4, + 0, 0, 52, 3, 0, 0, + 91, 4, 0, 0, 52, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 6, 0, 1, 0, + 2, 0, 100, 4, 0, 0, + 34, 0, 0, 0, 3, 0, + 4, 0, 5, 0, 255, 255, + 40, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 28, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 1, 0, + 30, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 31, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 2, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 4, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 128, 2, 0, 0, + 139, 2, 0, 0, 152, 2, + 0, 0, 1, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 180, 2, 0, 0, + 204, 2, 0, 0, 1, 0, + 0, 0, 220, 2, 0, 0, + 232, 2, 0, 0, 241, 2, + 0, 0, 248, 2, 0, 0, + 1, 0, 0, 0, 8, 3, + 0, 0, 20, 3, 0, 0, + 241, 2, 0, 0, 248, 2, + 0, 0, 1, 0, 0, 0, + 32, 3, 0, 0, 0, 0, + 0, 0, 44, 3, 0, 0, + 52, 3, 0, 0, 1, 0, + 0, 0, 68, 3, 0, 0, + 0, 0, 0, 0, 80, 3, + 0, 0, 52, 3, 0, 0, + 3, 0, 0, 0, 88, 3, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 7, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 2, 0, 15, 176, - 36, 0, 0, 2, 0, 0, - 7, 128, 1, 0, 228, 176, + 124, 3, 0, 0, 52, 3, + 0, 0, 3, 0, 0, 0, + 132, 3, 0, 0, 0, 0, + 0, 0, 168, 3, 0, 0, + 180, 3, 0, 0, 3, 0, + 0, 0, 196, 3, 0, 0, + 180, 2, 0, 0, 232, 3, + 0, 0, 32, 4, 0, 0, + 3, 0, 0, 0, 48, 4, + 0, 0, 0, 0, 0, 0, + 84, 4, 0, 0, 116, 4, + 0, 0, 2, 0, 0, 0, + 132, 4, 0, 0, 0, 0, + 0, 0, 156, 4, 0, 0, + 52, 3, 0, 0, 3, 0, + 0, 0, 168, 4, 0, 0, + 0, 0, 0, 0, 204, 4, + 0, 0, 52, 3, 0, 0, + 1, 0, 0, 0, 216, 4, + 0, 0, 0, 0, 0, 0, + 228, 4, 0, 0, 52, 3, + 0, 0, 1, 0, 0, 0, + 236, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 14, 0, 15, 160, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 7, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 2, 0, + 15, 176, 36, 0, 0, 2, + 0, 0, 7, 128, 1, 0, + 228, 176, 8, 0, 0, 3, + 1, 0, 1, 128, 3, 0, + 228, 161, 0, 0, 228, 128, 8, 0, 0, 3, 1, 0, - 1, 128, 3, 0, 228, 161, + 2, 128, 4, 0, 228, 161, 0, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 2, 128, - 4, 0, 228, 161, 0, 0, - 228, 128, 8, 0, 0, 3, - 1, 0, 4, 128, 5, 0, - 228, 161, 0, 0, 228, 128, - 88, 0, 0, 4, 2, 0, - 7, 128, 1, 0, 228, 128, - 14, 0, 0, 160, 14, 0, - 85, 160, 5, 0, 0, 3, - 1, 0, 7, 128, 1, 0, - 228, 128, 2, 0, 228, 128, - 2, 0, 0, 3, 3, 0, - 7, 128, 0, 0, 228, 177, - 12, 0, 228, 160, 8, 0, - 0, 3, 0, 0, 8, 128, - 3, 0, 228, 128, 3, 0, - 228, 128, 7, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 128, 4, 0, 0, 4, - 4, 0, 7, 128, 3, 0, - 228, 128, 0, 0, 255, 128, - 3, 0, 228, 161, 36, 0, - 0, 2, 5, 0, 7, 128, - 4, 0, 228, 128, 8, 0, - 0, 3, 4, 0, 1, 128, - 5, 0, 228, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 5, 0, 7, 128, 3, 0, - 228, 128, 0, 0, 255, 128, - 4, 0, 228, 161, 4, 0, - 0, 4, 3, 0, 7, 128, + 0, 3, 1, 0, 4, 128, + 5, 0, 228, 161, 0, 0, + 228, 128, 88, 0, 0, 4, + 2, 0, 7, 128, 1, 0, + 228, 128, 14, 0, 0, 160, + 14, 0, 85, 160, 5, 0, + 0, 3, 1, 0, 7, 128, + 1, 0, 228, 128, 2, 0, + 228, 128, 2, 0, 0, 3, + 3, 0, 7, 128, 0, 0, + 228, 177, 12, 0, 228, 160, + 8, 0, 0, 3, 0, 0, + 8, 128, 3, 0, 228, 128, + 3, 0, 228, 128, 7, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 128, 4, 0, + 0, 4, 4, 0, 7, 128, 3, 0, 228, 128, 0, 0, - 255, 128, 5, 0, 228, 161, - 36, 0, 0, 2, 6, 0, - 7, 128, 3, 0, 228, 128, + 255, 128, 3, 0, 228, 161, + 36, 0, 0, 2, 5, 0, + 7, 128, 4, 0, 228, 128, 8, 0, 0, 3, 4, 0, - 4, 128, 6, 0, 228, 128, - 0, 0, 228, 128, 36, 0, - 0, 2, 3, 0, 7, 128, - 5, 0, 228, 128, 8, 0, - 0, 3, 4, 0, 2, 128, + 1, 128, 5, 0, 228, 128, + 0, 0, 228, 128, 4, 0, + 0, 4, 5, 0, 7, 128, 3, 0, 228, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 2, 0, - 228, 128, 4, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 4, 0, 228, 128, - 0, 0, 228, 128, 14, 0, - 85, 160, 15, 0, 0, 2, - 2, 0, 1, 128, 0, 0, - 0, 128, 15, 0, 0, 2, - 2, 0, 2, 128, 0, 0, - 85, 128, 15, 0, 0, 2, - 2, 0, 4, 128, 0, 0, - 170, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 2, 0, - 228, 128, 2, 0, 255, 160, + 255, 128, 4, 0, 228, 161, + 4, 0, 0, 4, 3, 0, + 7, 128, 3, 0, 228, 128, + 0, 0, 255, 128, 5, 0, + 228, 161, 36, 0, 0, 2, + 6, 0, 7, 128, 3, 0, + 228, 128, 8, 0, 0, 3, + 4, 0, 4, 128, 6, 0, + 228, 128, 0, 0, 228, 128, + 36, 0, 0, 2, 3, 0, + 7, 128, 5, 0, 228, 128, + 8, 0, 0, 3, 4, 0, + 2, 128, 3, 0, 228, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 2, 0, 228, 128, 4, 0, + 228, 128, 88, 0, 0, 4, + 0, 0, 7, 128, 4, 0, + 228, 128, 0, 0, 228, 128, + 14, 0, 85, 160, 15, 0, + 0, 2, 2, 0, 1, 128, + 0, 0, 0, 128, 15, 0, + 0, 2, 2, 0, 2, 128, + 0, 0, 85, 128, 15, 0, + 0, 2, 2, 0, 4, 128, + 0, 0, 170, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 2, 0, 228, 128, 2, 0, + 255, 160, 14, 0, 0, 2, + 1, 0, 8, 128, 0, 0, + 85, 128, 5, 0, 0, 3, + 2, 0, 7, 128, 1, 0, + 255, 128, 10, 0, 228, 160, 14, 0, 0, 2, 1, 0, - 8, 128, 0, 0, 85, 128, - 5, 0, 0, 3, 2, 0, - 7, 128, 1, 0, 255, 128, - 10, 0, 228, 160, 14, 0, - 0, 2, 1, 0, 8, 128, - 0, 0, 0, 128, 14, 0, - 0, 2, 2, 0, 8, 128, - 0, 0, 170, 128, 4, 0, - 0, 4, 0, 0, 7, 128, - 1, 0, 255, 128, 9, 0, - 228, 160, 2, 0, 228, 128, + 8, 128, 0, 0, 0, 128, + 14, 0, 0, 2, 2, 0, + 8, 128, 0, 0, 170, 128, 4, 0, 0, 4, 0, 0, - 7, 128, 2, 0, 255, 128, - 11, 0, 228, 160, 0, 0, - 228, 128, 5, 0, 0, 3, + 7, 128, 1, 0, 255, 128, + 9, 0, 228, 160, 2, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 2, 0, + 255, 128, 11, 0, 228, 160, + 0, 0, 228, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 2, 0, + 228, 160, 5, 0, 0, 3, 0, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 228, 160, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 2, 0, 255, 176, 5, 0, - 0, 3, 2, 0, 7, 128, - 1, 0, 85, 128, 7, 0, - 228, 160, 4, 0, 0, 4, - 2, 0, 7, 128, 1, 0, - 0, 128, 6, 0, 228, 160, - 2, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 7, 128, - 1, 0, 170, 128, 8, 0, + 228, 128, 2, 0, 255, 176, + 5, 0, 0, 3, 2, 0, + 7, 128, 1, 0, 85, 128, + 7, 0, 228, 160, 4, 0, + 0, 4, 2, 0, 7, 128, + 1, 0, 0, 128, 6, 0, 228, 160, 2, 0, 228, 128, - 1, 0, 0, 2, 2, 0, - 7, 128, 0, 0, 228, 160, 4, 0, 0, 4, 1, 0, - 7, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 1, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 7, 128, 2, 0, - 228, 176, 1, 0, 228, 128, - 0, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 7, 128, - 13, 0, 228, 160, 2, 0, - 255, 176, 0, 0, 228, 129, - 4, 0, 0, 4, 0, 0, - 7, 128, 0, 0, 255, 176, - 1, 0, 228, 128, 0, 0, + 7, 128, 1, 0, 170, 128, + 8, 0, 228, 160, 2, 0, 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 2, 0, - 255, 176, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 228, 5, - 0, 0, 64, 0, 0, 0, - 121, 1, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 4, 0, 0, 0, 0, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 18, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 70, 130, + 2, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 7, 128, 1, 0, + 228, 128, 2, 0, 228, 128, + 1, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, + 2, 0, 228, 176, 1, 0, + 228, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 7, 128, 13, 0, 228, 160, + 2, 0, 255, 176, 0, 0, + 228, 129, 4, 0, 0, 4, + 0, 0, 7, 128, 0, 0, + 255, 176, 1, 0, 228, 128, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 128, + 2, 0, 255, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 228, 5, 0, 0, 64, 0, + 0, 0, 121, 1, 0, 0, + 89, 0, 0, 4, 70, 142, 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, + 14, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 4, 0, 0, 0, + 0, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 18, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 68, 0, 0, 5, 130, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, + 16, 0, 2, 0, 0, 0, 246, 15, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, + 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 2, 0, 0, 0, 246, 15, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 18, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, + 0, 7, 18, 0, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 50, 0, 0, 11, 114, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 0, 0, + 114, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, + 4, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 16, 0, 0, 7, - 34, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, + 3, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 7, 66, 0, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 2, 0, - 0, 0, 52, 0, 0, 10, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 68, 0, 0, 5, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 18, 0, + 2, 0, 0, 0, 52, 0, + 0, 10, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 16, 0, 0, 9, 34, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 16, 0, 0, 9, 66, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, + 0, 0, 16, 0, 0, 9, + 18, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 16, 0, 0, 9, + 34, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 16, 0, 0, 9, + 66, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 29, 0, 0, 10, + 114, 0, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 29, 0, 0, 10, 114, 0, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 10, 114, 0, 16, 0, - 2, 0, 0, 0, 70, 2, + 1, 0, 0, 10, 114, 0, 16, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, + 70, 2, 16, 0, 2, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 0, 0, + 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 47, 0, 0, 5, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 47, 0, + 0, 0, 0, 0, 246, 143, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 25, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, + 16, 0, 2, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 50, 0, 0, 10, + 178, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 136, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 70, 8, + 16, 0, 2, 0, 0, 0, + 50, 0, 0, 10, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 143, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 25, 0, 0, 5, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, + 166, 10, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 70, 3, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, - 2, 0, 0, 0, 86, 5, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 50, 0, 0, 10, 178, 0, + 0, 0, 2, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 2, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 2, 0, 0, 0, 86, 5, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 50, 0, 0, 10, 178, 0, + 16, 0, 1, 0, 0, 0, + 6, 0, 16, 0, 1, 0, 0, 0, 70, 136, 32, 0, - 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 70, 8, 16, 0, 2, 0, 0, 0, 50, 0, 0, 10, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 166, 10, + 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 70, 3, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 70, 3, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 2, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, - 0, 0, 86, 5, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 50, 0, - 0, 10, 178, 0, 16, 0, - 1, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 70, 136, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 70, 8, 16, 0, 2, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 1, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 70, 130, + 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 70, 3, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 13, 0, - 0, 0, 246, 31, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 32, 16, 0, - 0, 0, 0, 0, 246, 31, - 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 50, 0, + 0, 9, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 16, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 246, 31, 16, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 96, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, + 70, 2, 16, 128, 65, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 9, 114, 32, + 16, 0, 0, 0, 0, 0, + 246, 31, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 130, 32, + 16, 0, 0, 0, 0, 0, + 58, 16, 16, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 96, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 80, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 89, 0, 0, 0, + 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 15, - 0, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 67, - 79, 76, 79, 82, 0, 171, - 79, 83, 71, 78, 44, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 80, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 7, 7, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 15, 0, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 67, 79, 76, 79, 82, + 0, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLightingTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLightingTx.inc index 1b5233391d638b4e749224187d93d951e0dbb128..45a342c8aa5f632280d7fc6c09405023821a8cc9 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLightingTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicPixelLightingTx.inc @@ -38,54 +38,94 @@ // ps_2_0 def c14, 1, 0, 0, 0 - dcl t0.xyz - dcl t1 - dcl t2.xyz - dcl t3 + dcl t0.xyz // pin<0,1> + dcl t1 // pin<2,3,4,5> + dcl t2.xyz // pin<6,7,8> + dcl t3 // pin<9,10,11,12> dcl_2d s0 + +#line 427 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" texld r0, t0, s0 - nrm r1.xyz, t2 - dp3 r2.x, -c3, r1 - dp3 r2.y, -c4, r1 - dp3 r2.z, -c5, r1 - cmp r3.xyz, r2, c14.x, c14.y - mul r2.xyz, r2, r3 + +#line 430 + nrm r1.xyz, t2 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r2.x, -c3, r1 // ::dotL<0> + dp3 r2.y, -c4, r1 // ::dotL<1> + dp3 r2.z, -c5, r1 // ::dotL<2> + +#line 39 + cmp r3.xyz, r2, c14.x, c14.y // ::zeroL<0,1,2> + mul r2.xyz, r2, r3 // ::diffuse<0,1,2> + +#line 429 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" add r4.xyz, -t1, c12 dp3 r1.w, r4, r4 rsq r1.w, r1.w + +#line 33 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mad r5.xyz, r4, r1.w, -c3 - nrm r6.xyz, r5 - dp3 r5.x, r6, r1 + nrm r6.xyz, r5 // ::halfVectors<0,1,2> + +#line 37 + dp3 r5.x, r6, r1 // ::dotH<0> + +#line 33 mad r6.xyz, r4, r1.w, -c4 mad r4.xyz, r4, r1.w, -c5 - nrm r7.xyz, r4 - dp3 r5.z, r7, r1 - nrm r4.xyz, r6 - dp3 r5.y, r4, r1 + nrm r7.xyz, r4 // ::halfVectors<6,7,8> + +#line 37 + dp3 r5.z, r7, r1 // ::dotH<2> + +#line 33 + nrm r4.xyz, r6 // ::halfVectors<3,4,5> + +#line 37 + dp3 r5.y, r4, r1 // ::dotH<1> + +#line 42 mul r1.xyz, r3, r5 cmp r1.xyz, r5, r1, c14.y log r3.x, r1.x log r3.y, r1.y log r3.z, r1.z mul r1.xyz, r3, c2.w - exp r2.w, r1.y + exp r2.w, r1.y // ::specular<1> + +#line 47 mul r3.xyz, r2.w, c10 - exp r2.w, r1.x - exp r3.w, r1.z + +#line 42 + exp r2.w, r1.x // ::specular<0> + exp r3.w, r1.z // ::specular<2> + +#line 47 mad r1.xyz, r2.w, c9, r3 mad r1.xyz, r3.w, c11, r1 - mul r1.xyz, r1, c2 - mul r0, r0, t3 + mul r1.xyz, r1, c2 // ::result<3,4,5> + +#line 427 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul r0, r0, t3 // ::color<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mul r1.xyz, r0.w, r1 + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mul r3.xyz, r2.y, c7 mad r3.xyz, r2.x, c6, r3 mad r2.xyz, r2.z, c8, r3 - mov r3.xyz, c0 - mad r2.xyz, r2, r3, c1 - mad r1.xyz, r0, r2, r1 + mov r3.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad r2.xyz, r2, r3, c1 // ::result<0,1,2> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r1.xyz, r0, r2, r1 // AddSpecular::color<0,1,2> + +#line 20 mad r2.xyz, c13, r0.w, -r1 - mad r0.xyz, t1.w, r2, r1 - mov oC0, r0 + mad r0.xyz, t1.w, r2, r1 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSBasicPixelLightingTx<0,1,2,3> // approximately 51 instruction slots used (1 texture, 50 arithmetic) ps_4_0 @@ -151,17 +191,17 @@ ret const BYTE BasicEffect_PSBasicPixelLightingTx[] = { - 68, 88, 66, 67, 129, 164, - 9, 179, 158, 143, 193, 218, - 75, 230, 209, 15, 16, 58, - 111, 78, 1, 0, 0, 0, - 128, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 161, 21, + 26, 188, 147, 113, 169, 193, + 213, 164, 203, 139, 151, 130, + 20, 162, 1, 0, 0, 0, + 20, 17, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 120, 3, 0, 0, 204, 9, - 0, 0, 76, 10, 0, 0, - 65, 111, 110, 57, 64, 3, - 0, 0, 64, 3, 0, 0, - 0, 2, 255, 255, 12, 3, + 12, 10, 0, 0, 96, 16, + 0, 0, 224, 16, 0, 0, + 65, 111, 110, 57, 212, 9, + 0, 0, 212, 9, 0, 0, + 0, 2, 255, 255, 160, 9, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -169,434 +209,715 @@ const BYTE BasicEffect_PSBasicPixelLightingTx[] = 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 81, 0, - 0, 5, 14, 0, 15, 160, - 0, 0, 128, 63, 0, 0, + 0, 2, 255, 255, 254, 255, + 164, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 100, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 3, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 176, 8, 0, 0, 3, - 2, 0, 1, 128, 3, 0, - 228, 161, 1, 0, 228, 128, + 3, 0, 0, 0, 4, 1, + 0, 0, 49, 0, 0, 0, + 16, 1, 0, 0, 14, 0, + 0, 0, 76, 5, 0, 0, + 204, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 67, 58, 92, 65, 84, + 71, 32, 83, 97, 109, 112, + 108, 101, 32, 68, 101, 118, + 101, 108, 111, 112, 109, 101, + 110, 116, 92, 115, 116, 95, + 100, 101, 118, 92, 75, 105, + 116, 115, 92, 68, 105, 114, + 101, 99, 116, 88, 84, 75, + 92, 83, 114, 99, 92, 83, + 104, 97, 100, 101, 114, 115, + 92, 76, 105, 103, 104, 116, + 105, 110, 103, 46, 102, 120, + 104, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 67, 111, 109, 109, + 111, 110, 46, 102, 120, 104, + 0, 171, 40, 0, 0, 0, + 115, 0, 0, 0, 188, 0, + 0, 0, 0, 0, 255, 255, + 152, 6, 0, 0, 0, 0, + 255, 255, 176, 6, 0, 0, + 0, 0, 255, 255, 188, 6, + 0, 0, 0, 0, 255, 255, + 200, 6, 0, 0, 0, 0, + 255, 255, 212, 6, 0, 0, + 0, 0, 255, 255, 224, 6, + 0, 0, 171, 1, 0, 0, + 236, 6, 0, 0, 174, 1, + 0, 0, 252, 6, 0, 0, + 36, 0, 1, 0, 8, 7, + 0, 0, 36, 0, 1, 0, + 24, 7, 0, 0, 36, 0, + 1, 0, 40, 7, 0, 0, + 39, 0, 1, 0, 56, 7, + 0, 0, 41, 0, 1, 0, + 76, 7, 0, 0, 173, 1, + 0, 0, 92, 7, 0, 0, + 173, 1, 0, 0, 108, 7, + 0, 0, 173, 1, 0, 0, + 124, 7, 0, 0, 33, 0, + 1, 0, 136, 7, 0, 0, + 33, 0, 1, 0, 156, 7, + 0, 0, 37, 0, 1, 0, + 168, 7, 0, 0, 33, 0, + 1, 0, 184, 7, 0, 0, + 33, 0, 1, 0, 204, 7, + 0, 0, 33, 0, 1, 0, + 224, 7, 0, 0, 37, 0, + 1, 0, 236, 7, 0, 0, + 33, 0, 1, 0, 252, 7, + 0, 0, 37, 0, 1, 0, + 8, 8, 0, 0, 42, 0, + 1, 0, 24, 8, 0, 0, + 42, 0, 1, 0, 40, 8, + 0, 0, 42, 0, 1, 0, + 60, 8, 0, 0, 42, 0, + 1, 0, 72, 8, 0, 0, + 42, 0, 1, 0, 84, 8, + 0, 0, 42, 0, 1, 0, + 96, 8, 0, 0, 42, 0, + 1, 0, 112, 8, 0, 0, + 47, 0, 1, 0, 124, 8, + 0, 0, 42, 0, 1, 0, + 140, 8, 0, 0, 42, 0, + 1, 0, 152, 8, 0, 0, + 47, 0, 1, 0, 164, 8, + 0, 0, 47, 0, 1, 0, + 184, 8, 0, 0, 47, 0, + 1, 0, 204, 8, 0, 0, + 171, 1, 0, 0, 220, 8, + 0, 0, 26, 0, 2, 0, + 236, 8, 0, 0, 46, 0, + 1, 0, 252, 8, 0, 0, + 46, 0, 1, 0, 12, 9, + 0, 0, 46, 0, 1, 0, + 32, 9, 0, 0, 46, 0, + 1, 0, 52, 9, 0, 0, + 46, 0, 1, 0, 64, 9, + 0, 0, 26, 0, 2, 0, + 84, 9, 0, 0, 20, 0, + 2, 0, 104, 9, 0, 0, + 20, 0, 2, 0, 124, 9, + 0, 0, 20, 0, 2, 0, + 144, 9, 0, 0, 80, 97, + 114, 97, 109, 101, 116, 101, + 114, 115, 0, 68, 105, 102, + 102, 117, 115, 101, 67, 111, + 108, 111, 114, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 43, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 80, 83, 66, 97, + 115, 105, 99, 80, 105, 120, + 101, 108, 76, 105, 103, 104, + 116, 105, 110, 103, 84, 120, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 48, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 65, 112, 112, 108, 121, 70, + 111, 103, 0, 99, 111, 108, + 111, 114, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 65, 100, 100, 83, + 112, 101, 99, 117, 108, 97, + 114, 0, 45, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 38, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 111, 116, 72, + 0, 171, 171, 171, 18, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 22, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 24, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 100, 111, + 116, 76, 0, 171, 171, 171, + 8, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 9, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 10, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 104, 97, 108, 102, 86, 101, + 99, 116, 111, 114, 115, 0, + 3, 0, 3, 0, 3, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 21, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 255, 255, 23, 0, + 0, 0, 3, 0, 4, 0, + 5, 0, 255, 255, 112, 105, + 110, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 87, 83, 0, 78, + 111, 114, 109, 97, 108, 87, + 83, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 16, 4, + 0, 0, 28, 4, 0, 0, + 44, 4, 0, 0, 16, 3, + 0, 0, 55, 4, 0, 0, + 88, 3, 0, 0, 64, 4, + 0, 0, 16, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 13, 0, 1, 0, 4, 0, + 72, 4, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 255, 255, 255, 255, 2, 0, + 0, 0, 2, 0, 3, 0, + 4, 0, 5, 0, 3, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 255, 255, 4, 0, + 0, 0, 9, 0, 10, 0, + 11, 0, 12, 0, 114, 101, + 115, 117, 108, 116, 0, 83, + 112, 101, 99, 117, 108, 97, + 114, 0, 64, 4, 0, 0, + 88, 3, 0, 0, 175, 4, + 0, 0, 88, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 6, 0, 1, 0, 2, 0, + 184, 4, 0, 0, 37, 0, + 0, 0, 3, 0, 4, 0, + 5, 0, 255, 255, 44, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 115, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 31, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 1, 0, 33, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 34, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 2, 0, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 97, 108, 0, 7, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 122, 101, + 114, 111, 76, 0, 171, 171, + 11, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 152, 2, 0, 0, 163, 2, + 0, 0, 176, 2, 0, 0, + 1, 0, 0, 0, 192, 2, + 0, 0, 0, 0, 0, 0, + 204, 2, 0, 0, 228, 2, + 0, 0, 1, 0, 0, 0, + 244, 2, 0, 0, 0, 3, + 0, 0, 9, 3, 0, 0, + 16, 3, 0, 0, 1, 0, + 0, 0, 32, 3, 0, 0, + 44, 3, 0, 0, 9, 3, + 0, 0, 16, 3, 0, 0, + 1, 0, 0, 0, 56, 3, + 0, 0, 0, 0, 0, 0, + 9, 3, 0, 0, 16, 3, + 0, 0, 1, 0, 0, 0, + 68, 3, 0, 0, 0, 0, + 0, 0, 80, 3, 0, 0, + 88, 3, 0, 0, 1, 0, + 0, 0, 104, 3, 0, 0, + 0, 0, 0, 0, 116, 3, + 0, 0, 88, 3, 0, 0, + 3, 0, 0, 0, 124, 3, + 0, 0, 0, 0, 0, 0, + 160, 3, 0, 0, 88, 3, + 0, 0, 3, 0, 0, 0, + 168, 3, 0, 0, 0, 0, + 0, 0, 204, 3, 0, 0, + 216, 3, 0, 0, 3, 0, + 0, 0, 232, 3, 0, 0, + 204, 2, 0, 0, 12, 4, + 0, 0, 104, 4, 0, 0, + 4, 0, 0, 0, 120, 4, + 0, 0, 0, 0, 0, 0, + 168, 4, 0, 0, 200, 4, + 0, 0, 2, 0, 0, 0, + 216, 4, 0, 0, 0, 0, + 0, 0, 240, 4, 0, 0, + 88, 3, 0, 0, 3, 0, + 0, 0, 252, 4, 0, 0, + 0, 0, 0, 0, 32, 5, + 0, 0, 88, 3, 0, 0, + 1, 0, 0, 0, 44, 5, + 0, 0, 0, 0, 0, 0, + 56, 5, 0, 0, 88, 3, + 0, 0, 1, 0, 0, 0, + 64, 5, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 14, 0, 15, 160, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 7, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 2, 0, + 7, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 3, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 36, 0, 0, 2, 1, 0, + 7, 128, 2, 0, 228, 176, 8, 0, 0, 3, 2, 0, - 2, 128, 4, 0, 228, 161, + 1, 128, 3, 0, 228, 161, 1, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 4, 128, - 5, 0, 228, 161, 1, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 7, 128, 2, 0, - 228, 128, 14, 0, 0, 160, - 14, 0, 85, 160, 5, 0, - 0, 3, 2, 0, 7, 128, - 2, 0, 228, 128, 3, 0, - 228, 128, 2, 0, 0, 3, - 4, 0, 7, 128, 1, 0, - 228, 177, 12, 0, 228, 160, - 8, 0, 0, 3, 1, 0, - 8, 128, 4, 0, 228, 128, - 4, 0, 228, 128, 7, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 4, 0, - 0, 4, 5, 0, 7, 128, - 4, 0, 228, 128, 1, 0, - 255, 128, 3, 0, 228, 161, - 36, 0, 0, 2, 6, 0, - 7, 128, 5, 0, 228, 128, - 8, 0, 0, 3, 5, 0, - 1, 128, 6, 0, 228, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 6, 0, 7, 128, + 0, 3, 2, 0, 2, 128, + 4, 0, 228, 161, 1, 0, + 228, 128, 8, 0, 0, 3, + 2, 0, 4, 128, 5, 0, + 228, 161, 1, 0, 228, 128, + 88, 0, 0, 4, 3, 0, + 7, 128, 2, 0, 228, 128, + 14, 0, 0, 160, 14, 0, + 85, 160, 5, 0, 0, 3, + 2, 0, 7, 128, 2, 0, + 228, 128, 3, 0, 228, 128, + 2, 0, 0, 3, 4, 0, + 7, 128, 1, 0, 228, 177, + 12, 0, 228, 160, 8, 0, + 0, 3, 1, 0, 8, 128, + 4, 0, 228, 128, 4, 0, + 228, 128, 7, 0, 0, 2, + 1, 0, 8, 128, 1, 0, + 255, 128, 4, 0, 0, 4, + 5, 0, 7, 128, 4, 0, + 228, 128, 1, 0, 255, 128, + 3, 0, 228, 161, 36, 0, + 0, 2, 6, 0, 7, 128, + 5, 0, 228, 128, 8, 0, + 0, 3, 5, 0, 1, 128, + 6, 0, 228, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 6, 0, 7, 128, 4, 0, + 228, 128, 1, 0, 255, 128, + 4, 0, 228, 161, 4, 0, + 0, 4, 4, 0, 7, 128, 4, 0, 228, 128, 1, 0, - 255, 128, 4, 0, 228, 161, - 4, 0, 0, 4, 4, 0, + 255, 128, 5, 0, 228, 161, + 36, 0, 0, 2, 7, 0, 7, 128, 4, 0, 228, 128, - 1, 0, 255, 128, 5, 0, - 228, 161, 36, 0, 0, 2, - 7, 0, 7, 128, 4, 0, - 228, 128, 8, 0, 0, 3, - 5, 0, 4, 128, 7, 0, - 228, 128, 1, 0, 228, 128, - 36, 0, 0, 2, 4, 0, - 7, 128, 6, 0, 228, 128, 8, 0, 0, 3, 5, 0, - 2, 128, 4, 0, 228, 128, - 1, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 3, 0, 228, 128, 5, 0, - 228, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 5, 0, - 228, 128, 1, 0, 228, 128, - 14, 0, 85, 160, 15, 0, - 0, 2, 3, 0, 1, 128, - 1, 0, 0, 128, 15, 0, - 0, 2, 3, 0, 2, 128, - 1, 0, 85, 128, 15, 0, - 0, 2, 3, 0, 4, 128, - 1, 0, 170, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 3, 0, 228, 128, 2, 0, - 255, 160, 14, 0, 0, 2, - 2, 0, 8, 128, 1, 0, - 85, 128, 5, 0, 0, 3, - 3, 0, 7, 128, 2, 0, - 255, 128, 10, 0, 228, 160, + 4, 128, 7, 0, 228, 128, + 1, 0, 228, 128, 36, 0, + 0, 2, 4, 0, 7, 128, + 6, 0, 228, 128, 8, 0, + 0, 3, 5, 0, 2, 128, + 4, 0, 228, 128, 1, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 3, 0, + 228, 128, 5, 0, 228, 128, + 88, 0, 0, 4, 1, 0, + 7, 128, 5, 0, 228, 128, + 1, 0, 228, 128, 14, 0, + 85, 160, 15, 0, 0, 2, + 3, 0, 1, 128, 1, 0, + 0, 128, 15, 0, 0, 2, + 3, 0, 2, 128, 1, 0, + 85, 128, 15, 0, 0, 2, + 3, 0, 4, 128, 1, 0, + 170, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 3, 0, + 228, 128, 2, 0, 255, 160, 14, 0, 0, 2, 2, 0, - 8, 128, 1, 0, 0, 128, - 14, 0, 0, 2, 3, 0, - 8, 128, 1, 0, 170, 128, - 4, 0, 0, 4, 1, 0, + 8, 128, 1, 0, 85, 128, + 5, 0, 0, 3, 3, 0, 7, 128, 2, 0, 255, 128, - 9, 0, 228, 160, 3, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 7, 128, 3, 0, - 255, 128, 11, 0, 228, 160, - 1, 0, 228, 128, 5, 0, + 10, 0, 228, 160, 14, 0, + 0, 2, 2, 0, 8, 128, + 1, 0, 0, 128, 14, 0, + 0, 2, 3, 0, 8, 128, + 1, 0, 170, 128, 4, 0, + 0, 4, 1, 0, 7, 128, + 2, 0, 255, 128, 9, 0, + 228, 160, 3, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 7, 128, 3, 0, 255, 128, + 11, 0, 228, 160, 1, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 1, 0, + 228, 128, 2, 0, 228, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 3, 0, 228, 176, 5, 0, 0, 3, 1, 0, 7, 128, - 1, 0, 228, 128, 2, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 3, 0, 228, 176, - 5, 0, 0, 3, 1, 0, - 7, 128, 0, 0, 255, 128, - 1, 0, 228, 128, 5, 0, - 0, 3, 3, 0, 7, 128, - 2, 0, 85, 128, 7, 0, - 228, 160, 4, 0, 0, 4, + 0, 0, 255, 128, 1, 0, + 228, 128, 5, 0, 0, 3, 3, 0, 7, 128, 2, 0, - 0, 128, 6, 0, 228, 160, - 3, 0, 228, 128, 4, 0, - 0, 4, 2, 0, 7, 128, - 2, 0, 170, 128, 8, 0, - 228, 160, 3, 0, 228, 128, - 1, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 2, 0, - 7, 128, 2, 0, 228, 128, + 85, 128, 7, 0, 228, 160, + 4, 0, 0, 4, 3, 0, + 7, 128, 2, 0, 0, 128, + 6, 0, 228, 160, 3, 0, + 228, 128, 4, 0, 0, 4, + 2, 0, 7, 128, 2, 0, + 170, 128, 8, 0, 228, 160, 3, 0, 228, 128, 1, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 228, 128, - 1, 0, 228, 128, 4, 0, + 0, 2, 3, 0, 7, 128, + 0, 0, 228, 160, 4, 0, 0, 4, 2, 0, 7, 128, - 13, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 129, - 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 255, 176, + 2, 0, 228, 128, 3, 0, + 228, 128, 1, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 0, 0, 228, 128, 2, 0, 228, 128, 1, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 76, 6, - 0, 0, 64, 0, 0, 0, - 147, 1, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, + 228, 128, 4, 0, 0, 4, + 2, 0, 7, 128, 13, 0, + 228, 160, 0, 0, 255, 128, + 1, 0, 228, 129, 4, 0, + 0, 4, 0, 0, 7, 128, + 1, 0, 255, 176, 2, 0, + 228, 128, 1, 0, 228, 128, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 76, 6, 0, 0, + 64, 0, 0, 0, 147, 1, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 2, 0, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 0, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, + 85, 85, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 2, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 4, 0, 0, 0, + 0, 0, 0, 9, 114, 0, 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 70, 18, 16, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 1, 0, - 0, 0, 70, 18, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 2, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 2, 0, + 114, 0, 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 18, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 18, 16, 0, 2, 0, + 0, 0, 70, 18, 16, 0, + 2, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 2, 0, 0, 0, - 16, 0, 0, 7, 18, 0, + 246, 15, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 2, 0, 0, 0, 16, 0, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 50, 0, 0, 11, 114, 0, 16, 0, - 3, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 50, 0, 0, 11, 114, 0, + 0, 0, 5, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 3, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 3, 0, + 114, 0, 16, 0, 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 34, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 52, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 18, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 9, 34, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 9, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 29, 0, + 2, 0, 0, 0, 52, 0, 0, 10, 114, 0, 16, 0, - 2, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 10, + 0, 0, 16, 0, 0, 9, + 18, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 16, 0, 0, 9, + 34, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 16, 0, 0, 9, + 66, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 29, 0, 0, 10, 114, 0, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, + 1, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 10, 114, 0, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 47, 0, 0, 5, + 16, 0, 2, 0, 0, 0, + 47, 0, 0, 5, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 143, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 2, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 50, 0, 0, 10, + 178, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 136, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 70, 8, + 16, 0, 2, 0, 0, 0, + 50, 0, 0, 10, 114, 0, + 16, 0, 0, 0, 0, 0, + 166, 10, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 70, 3, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 246, 143, 32, 0, 0, 0, + 70, 130, 32, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 114, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 56, 0, 0, 7, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 3, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 2, 0, 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, + 114, 0, 16, 0, 3, 0, 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 130, + 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 50, 0, + 7, 0, 0, 0, 50, 0, 0, 10, 178, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, + 16, 0, 1, 0, 0, 0, 70, 136, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 8, 16, 0, 2, 0, + 0, 0, 6, 0, 0, 0, + 70, 8, 16, 0, 3, 0, 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 0, 0, + 114, 0, 16, 0, 1, 0, 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 130, + 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 70, 3, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 30, - 16, 0, 3, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 86, 5, + 8, 0, 0, 0, 70, 3, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 50, 0, 0, 10, 178, 0, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 1, 0, - 0, 0, 70, 136, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 70, 8, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 1, 0, 0, 0, 166, 10, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 70, 3, 16, 0, 1, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 13, 0, + 0, 0, 246, 15, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 31, + 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 246, 15, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 128, 65, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 120, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 9, 114, 32, - 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 32, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 120, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 3, + 0, 0, 104, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 104, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 7, 7, + 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 15, + 0, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 67, + 79, 76, 79, 82, 0, 171, + 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 104, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 7, 7, 0, 0, 113, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 15, 15, 0, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 67, 79, 76, 79, 82, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTx.inc index 0c79037e00e8a3f7575ae44805681cf3bc5378e5..8a6433a67ecdeecdc3f7ad91600a5d5ae77a1cce 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTx.inc @@ -36,15 +36,19 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 344 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" texld r0, t2, s0 - mul r0, r0, t0 + mul r0, r0, t0 // ::color<0,1,2,3> + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r1.xyz, c0, r0.w, -r0 - mad r0.xyz, t1.w, r1, r0 - mov oC0, r0 + mad r0.xyz, t1.w, r1, r0 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSBasicTx<0,1,2,3> // approximately 5 instruction slots used (1 texture, 4 arithmetic) ps_4_0 @@ -67,17 +71,17 @@ ret const BYTE BasicEffect_PSBasicTx[] = { - 68, 88, 66, 67, 155, 204, - 24, 105, 141, 75, 77, 28, - 70, 59, 49, 201, 3, 51, - 69, 45, 1, 0, 0, 0, - 176, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 188, 186, + 68, 183, 113, 27, 163, 65, + 177, 98, 193, 7, 58, 127, + 141, 151, 1, 0, 0, 0, + 24, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 248, 0, 0, 0, 20, 2, - 0, 0, 124, 2, 0, 0, - 65, 111, 110, 57, 192, 0, - 0, 0, 192, 0, 0, 0, - 0, 2, 255, 255, 140, 0, + 96, 3, 0, 0, 124, 4, + 0, 0, 228, 4, 0, 0, + 65, 111, 110, 57, 40, 3, + 0, 0, 40, 3, 0, 0, + 0, 2, 255, 255, 244, 2, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -85,101 +89,204 @@ const BYTE BasicEffect_PSBasicTx[] = 52, 0, 0, 0, 0, 0, 0, 0, 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 2, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 4, 0, 0, 4, 1, 0, - 7, 128, 0, 0, 228, 160, - 0, 0, 255, 128, 0, 0, - 228, 129, 4, 0, 0, 4, - 0, 0, 7, 128, 1, 0, - 255, 176, 1, 0, 228, 128, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 20, 1, 0, 0, 64, 0, - 0, 0, 69, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 98, 16, 0, 3, - 130, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 2, 255, 255, 254, 255, + 153, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 56, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 9, 0, 0, 0, + 196, 0, 0, 0, 4, 0, + 0, 0, 232, 1, 0, 0, + 12, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 67, 58, 92, 65, 84, + 71, 32, 83, 97, 109, 112, + 108, 101, 32, 68, 101, 118, + 101, 108, 111, 112, 109, 101, + 110, 116, 92, 115, 116, 95, + 100, 101, 118, 92, 75, 105, + 116, 115, 92, 68, 105, 114, + 101, 99, 116, 88, 84, 75, + 92, 83, 114, 99, 92, 83, + 104, 97, 100, 101, 114, 115, + 92, 67, 111, 109, 109, 111, + 110, 46, 102, 120, 104, 0, + 171, 171, 40, 0, 0, 0, + 115, 0, 0, 0, 0, 0, + 255, 255, 108, 2, 0, 0, + 0, 0, 255, 255, 120, 2, + 0, 0, 0, 0, 255, 255, + 132, 2, 0, 0, 0, 0, + 255, 255, 144, 2, 0, 0, + 88, 1, 0, 0, 156, 2, + 0, 0, 88, 1, 0, 0, + 172, 2, 0, 0, 20, 0, + 1, 0, 188, 2, 0, 0, + 20, 0, 1, 0, 208, 2, + 0, 0, 20, 0, 1, 0, + 228, 2, 0, 0, 80, 83, + 66, 97, 115, 105, 99, 84, + 120, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 65, 112, 112, 108, + 121, 70, 111, 103, 0, 99, + 111, 108, 111, 114, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 5, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 112, 105, + 110, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 112, 1, + 0, 0, 68, 1, 0, 0, + 120, 1, 0, 0, 68, 1, + 0, 0, 129, 1, 0, 0, + 140, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 10, 0, + 1, 0, 3, 0, 156, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 12, 1, 0, 0, 24, 1, + 0, 0, 1, 0, 0, 0, + 40, 1, 0, 0, 52, 1, + 0, 0, 61, 1, 0, 0, + 68, 1, 0, 0, 1, 0, + 0, 0, 84, 1, 0, 0, + 0, 0, 0, 0, 61, 1, + 0, 0, 68, 1, 0, 0, + 1, 0, 0, 0, 96, 1, + 0, 0, 12, 1, 0, 0, + 108, 1, 0, 0, 180, 1, + 0, 0, 3, 0, 0, 0, + 196, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 2, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 2, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 0, 0, 228, 176, 4, 0, + 0, 4, 1, 0, 7, 128, + 0, 0, 228, 160, 0, 0, + 255, 128, 0, 0, 228, 129, + 4, 0, 0, 4, 0, 0, + 7, 128, 1, 0, 255, 176, + 1, 0, 228, 128, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 20, 1, + 0, 0, 64, 0, 0, 0, + 69, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 13, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 32, 16, 0, - 0, 0, 0, 0, 246, 31, + 98, 16, 0, 3, 130, 16, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 96, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 11, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 9, + 114, 32, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 96, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 80, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 8, - 0, 0, 86, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 80, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 3, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 8, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTxNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTxNoFog.inc index 59bc50eb72e555a512cf1e7f705c227ea104bf7e..995d40a13fbce413ab72db1f2793d13da5bead3f 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTxNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicTxNoFog.inc @@ -28,12 +28,14 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1.xy + dcl t0 // pin<0,1,2,3> + dcl t1.xy // pin<4,5> dcl_2d s0 + +#line 355 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" texld r0, t1, s0 - mul r0, r0, t0 - mov oC0, r0 + mul r0, r0, t0 // ::PSBasicTxNoFog<0,1,2,3> + mov oC0, r0 // ::PSBasicTxNoFog<0,1,2,3> // approximately 3 instruction slots used (1 texture, 2 arithmetic) ps_4_0 @@ -51,83 +53,154 @@ ret const BYTE BasicEffect_PSBasicTxNoFog[] = { - 68, 88, 66, 67, 194, 95, - 105, 234, 141, 247, 73, 209, - 137, 241, 142, 29, 26, 223, - 234, 193, 1, 0, 0, 0, - 216, 1, 0, 0, 4, 0, + 68, 88, 66, 67, 202, 62, + 43, 24, 24, 167, 50, 82, + 241, 156, 231, 82, 42, 172, + 68, 12, 1, 0, 0, 0, + 128, 3, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 184, 0, 0, 0, 84, 1, - 0, 0, 164, 1, 0, 0, - 65, 111, 110, 57, 128, 0, - 0, 0, 128, 0, 0, 0, - 0, 2, 255, 255, 88, 0, + 96, 2, 0, 0, 252, 2, + 0, 0, 76, 3, 0, 0, + 65, 111, 110, 57, 40, 2, + 0, 0, 40, 2, 0, 0, + 0, 2, 255, 255, 0, 2, 0, 0, 40, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 1, 0, 36, 0, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 1, 0, 0, 2, 0, 8, + 0, 2, 255, 255, 254, 255, + 105, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 6, 0, 0, 0, + 120, 0, 0, 0, 2, 0, + 0, 0, 80, 1, 0, 0, + 168, 0, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 172, 1, + 0, 0, 0, 0, 255, 255, + 184, 1, 0, 0, 0, 0, + 255, 255, 196, 1, 0, 0, + 99, 1, 0, 0, 208, 1, + 0, 0, 99, 1, 0, 0, + 224, 1, 0, 0, 99, 1, + 0, 0, 240, 1, 0, 0, + 80, 83, 66, 97, 115, 105, + 99, 84, 120, 78, 111, 70, + 111, 103, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 228, 0, + 0, 0, 236, 0, 0, 0, + 252, 0, 0, 0, 8, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 6, 0, 1, 0, + 2, 0, 24, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 168, 0, + 0, 0, 184, 0, 0, 0, + 2, 0, 0, 0, 200, 0, + 0, 0, 168, 0, 0, 0, + 224, 0, 0, 0, 40, 1, + 0, 0, 2, 0, 0, 0, + 56, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 1, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 148, 0, 0, 0, - 64, 0, 0, 0, 37, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, + 0, 0, 228, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 148, 0, 0, 0, 64, 0, + 0, 0, 37, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 30, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 72, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 62, 0, 0, 0, + 56, 0, 0, 7, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 72, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLighting.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLighting.inc index e88bfff2b81a7652276f8b97075e499c4fd31a24..0ce1f0bb0d69041c476501643726a24e250ea0eb 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLighting.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLighting.inc @@ -28,14 +28,18 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - mov r0, t0 - mad r0.xyz, t1, r0.w, r0 + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov r0, t0 // pin<0,1,2,3> + mad r0.xyz, t1, r0.w, r0 // AddSpecular::color<0,1,2> + +#line 20 mad r1.xyz, c0, t0.w, -r0 - mad r0.xyz, t1.w, r1, r0 + mad r0.xyz, t1.w, r1, r0 // ApplyFog::color<0,1,2> mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::PSBasicVertexLighting<0,1,2,3> // approximately 6 instruction slots used ps_4_0 @@ -54,17 +58,17 @@ ret const BYTE BasicEffect_PSBasicVertexLighting[] = { - 68, 88, 66, 67, 1, 0, - 211, 175, 137, 211, 98, 125, - 71, 150, 248, 71, 185, 240, - 6, 94, 1, 0, 0, 0, - 60, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 18, 102, + 41, 118, 121, 177, 81, 62, + 18, 101, 73, 36, 154, 122, + 83, 100, 1, 0, 0, 0, + 68, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 232, 0, 0, 0, 192, 1, - 0, 0, 8, 2, 0, 0, - 65, 111, 110, 57, 176, 0, - 0, 0, 176, 0, 0, 0, - 0, 2, 255, 255, 128, 0, + 240, 2, 0, 0, 200, 3, + 0, 0, 16, 4, 0, 0, + 65, 111, 110, 57, 184, 2, + 0, 0, 184, 2, 0, 0, + 0, 2, 255, 255, 136, 2, 0, 0, 48, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -72,82 +76,168 @@ const BYTE BasicEffect_PSBasicVertexLighting[] = 48, 0, 0, 0, 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 15, 176, - 1, 0, 0, 2, 0, 0, - 15, 128, 0, 0, 228, 176, - 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 228, 176, - 0, 0, 255, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 7, 128, 0, 0, - 228, 160, 0, 0, 255, 176, - 0, 0, 228, 129, 4, 0, + 254, 255, 129, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 216, 1, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 112, 0, 0, 0, 8, 0, + 0, 0, 116, 0, 0, 0, + 4, 0, 0, 0, 136, 1, + 0, 0, 180, 0, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 67, 111, 109, 109, 111, 110, + 46, 102, 120, 104, 0, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 12, 2, 0, 0, + 0, 0, 255, 255, 24, 2, + 0, 0, 26, 0, 0, 0, + 36, 2, 0, 0, 26, 0, + 0, 0, 48, 2, 0, 0, + 20, 0, 0, 0, 68, 2, + 0, 0, 20, 0, 0, 0, + 88, 2, 0, 0, 20, 0, + 0, 0, 108, 2, 0, 0, + 20, 0, 0, 0, 120, 2, + 0, 0, 80, 83, 66, 97, + 115, 105, 99, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 65, 112, 112, 108, 121, 70, + 111, 103, 0, 99, 111, 108, + 111, 114, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 65, 100, 100, 83, + 112, 101, 99, 117, 108, 97, + 114, 0, 3, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 48, 1, 0, 0, + 248, 0, 0, 0, 56, 1, + 0, 0, 248, 0, 0, 0, + 5, 0, 0, 0, 1, 0, + 8, 0, 1, 0, 2, 0, + 68, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 7, 0, 2, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 0, 0, + 0, 0, 180, 0, 0, 0, + 204, 0, 0, 0, 1, 0, + 0, 0, 220, 0, 0, 0, + 232, 0, 0, 0, 241, 0, + 0, 0, 248, 0, 0, 0, + 1, 0, 0, 0, 8, 1, + 0, 0, 20, 1, 0, 0, + 241, 0, 0, 0, 248, 0, + 0, 0, 1, 0, 0, 0, + 32, 1, 0, 0, 180, 0, + 0, 0, 44, 1, 0, 0, + 84, 1, 0, 0, 3, 0, + 0, 0, 100, 1, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 1, 0, 15, 176, 1, 0, + 0, 2, 0, 0, 15, 128, + 0, 0, 228, 176, 4, 0, 0, 4, 0, 0, 7, 128, - 1, 0, 255, 176, 1, 0, - 228, 128, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 128, 0, 0, 255, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 208, 0, 0, 0, - 64, 0, 0, 0, 52, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 98, 16, 0, 3, 242, 16, + 1, 0, 228, 176, 0, 0, + 255, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 7, 128, 0, 0, 228, 160, + 0, 0, 255, 176, 0, 0, + 228, 129, 4, 0, 0, 4, + 0, 0, 7, 128, 1, 0, + 255, 176, 1, 0, 228, 128, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 208, 0, 0, 0, 64, 0, + 0, 0, 52, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 50, 0, 0, 9, 114, 0, 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 70, 18, 16, 0, 1, 0, + 0, 0, 246, 31, 16, 0, + 0, 0, 0, 0, 70, 18, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 2, 0, + 50, 0, 0, 11, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 246, 31, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 246, 31, - 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 13, 0, + 114, 32, 16, 0, 0, 0, 0, 0, 246, 31, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 32, 16, 0, - 0, 0, 0, 0, 246, 31, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 16, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 64, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 16, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 64, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 56, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 15, - 0, 0, 67, 79, 76, 79, - 82, 0, 171, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 56, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 67, 79, 76, 79, 82, 0, + 171, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingNoFog.inc index b5339fe89e1468f7d85249595b222933964c31ad..c15941084c20583a35354cadf980558326a1aaef 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingNoFog.inc @@ -21,12 +21,14 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - mov r0, t0 - mad r0.xyz, t1, r0.w, r0 + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov r0, t0 // pin<0,1,2,3> + mad r0.xyz, t1, r0.w, r0 // AddSpecular::color<0,1,2> mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::PSBasicVertexLightingNoFog<0,1,2,3> // approximately 4 instruction slots used ps_4_0 @@ -41,22 +43,100 @@ ret const BYTE BasicEffect_PSBasicVertexLightingNoFog[] = { - 68, 88, 66, 67, 196, 161, - 90, 12, 111, 37, 237, 2, - 236, 93, 13, 113, 105, 60, - 150, 154, 1, 0, 0, 0, - 160, 1, 0, 0, 4, 0, + 68, 88, 66, 67, 222, 218, + 17, 223, 30, 109, 53, 74, + 83, 79, 76, 240, 237, 58, + 25, 229, 1, 0, 0, 0, + 116, 3, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 180, 0, 0, 0, 36, 1, - 0, 0, 108, 1, 0, 0, - 65, 111, 110, 57, 124, 0, - 0, 0, 124, 0, 0, 0, - 0, 2, 255, 255, 88, 0, + 136, 2, 0, 0, 248, 2, + 0, 0, 64, 3, 0, 0, + 65, 111, 110, 57, 80, 2, + 0, 0, 80, 2, 0, 0, + 0, 2, 255, 255, 44, 2, 0, 0, 36, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 2, 255, 255, + 254, 255, 116, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 164, 1, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 112, 0, 0, 0, 6, 0, + 0, 0, 116, 0, 0, 0, + 3, 0, 0, 0, 104, 1, + 0, 0, 164, 0, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 67, 111, 109, 109, 111, 110, + 46, 102, 120, 104, 0, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 216, 1, 0, 0, + 0, 0, 255, 255, 228, 1, + 0, 0, 26, 0, 0, 0, + 240, 1, 0, 0, 26, 0, + 0, 0, 252, 1, 0, 0, + 26, 0, 0, 0, 16, 2, + 0, 0, 26, 0, 0, 0, + 28, 2, 0, 0, 80, 83, + 66, 97, 115, 105, 99, 86, + 101, 114, 116, 101, 120, 76, + 105, 103, 104, 116, 105, 110, + 103, 78, 111, 70, 111, 103, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 65, 100, 100, 83, 112, 101, + 99, 117, 108, 97, 114, 0, + 99, 111, 108, 111, 114, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 105, 110, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 16, 1, 0, 0, 240, 0, + 0, 0, 24, 1, 0, 0, + 240, 0, 0, 0, 5, 0, + 0, 0, 1, 0, 8, 0, + 1, 0, 2, 0, 36, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 0, 0, 0, 0, + 164, 0, 0, 0, 192, 0, + 0, 0, 1, 0, 0, 0, + 208, 0, 0, 0, 220, 0, + 0, 0, 232, 0, 0, 0, + 240, 0, 0, 0, 1, 0, + 0, 0, 0, 1, 0, 0, + 164, 0, 0, 0, 12, 1, + 0, 0, 52, 1, 0, 0, + 3, 0, 0, 0, 68, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTx.inc index 0997605b70b324465b03250f82fc3c96fc8dd3cf..8ac3fc123a1018a84e04dfea60fbe5a27a86ca57 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTx.inc @@ -36,16 +36,22 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 385 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" texld r0, t2, s0 - mul r0, r0, t0 - mad r1.xyz, t1, r0.w, r0 + mul r0, r0, t0 // ::color<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r1.xyz, t1, r0.w, r0 // AddSpecular::color<0,1,2> + +#line 20 mad r2.xyz, c0, r0.w, -r1 - mad r0.xyz, t1.w, r2, r1 - mov oC0, r0 + mad r0.xyz, t1.w, r2, r1 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSBasicVertexLightingTx<0,1,2,3> // approximately 6 instruction slots used (1 texture, 5 arithmetic) ps_4_0 @@ -69,17 +75,17 @@ ret const BYTE BasicEffect_PSBasicVertexLightingTx[] = { - 68, 88, 66, 67, 168, 121, - 145, 162, 145, 142, 85, 167, - 84, 43, 205, 136, 70, 33, - 64, 152, 1, 0, 0, 0, - 232, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 12, 45, + 32, 233, 77, 105, 178, 222, + 233, 127, 45, 216, 102, 162, + 107, 125, 1, 0, 0, 0, + 144, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 12, 1, 0, 0, 76, 2, - 0, 0, 180, 2, 0, 0, - 65, 111, 110, 57, 212, 0, - 0, 0, 212, 0, 0, 0, - 0, 2, 255, 255, 160, 0, + 180, 3, 0, 0, 244, 4, + 0, 0, 92, 5, 0, 0, + 65, 111, 110, 57, 124, 3, + 0, 0, 124, 3, 0, 0, + 0, 2, 255, 255, 72, 3, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -87,110 +93,224 @@ const BYTE BasicEffect_PSBasicVertexLightingTx[] = 52, 0, 0, 0, 0, 0, 0, 0, 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, + 0, 2, 255, 255, 254, 255, + 169, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 120, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 10, 0, 0, 0, + 196, 0, 0, 0, 5, 0, + 0, 0, 20, 2, 0, 0, + 20, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 67, 58, 92, 65, 84, + 71, 32, 83, 97, 109, 112, + 108, 101, 32, 68, 101, 118, + 101, 108, 111, 112, 109, 101, + 110, 116, 92, 115, 116, 95, + 100, 101, 118, 92, 75, 105, + 116, 115, 92, 68, 105, 114, + 101, 99, 116, 88, 84, 75, + 92, 83, 114, 99, 92, 83, + 104, 97, 100, 101, 114, 115, + 92, 67, 111, 109, 109, 111, + 110, 46, 102, 120, 104, 0, + 171, 171, 40, 0, 0, 0, + 115, 0, 0, 0, 0, 0, + 255, 255, 172, 2, 0, 0, + 0, 0, 255, 255, 184, 2, + 0, 0, 0, 0, 255, 255, + 196, 2, 0, 0, 0, 0, + 255, 255, 208, 2, 0, 0, + 129, 1, 0, 0, 220, 2, + 0, 0, 129, 1, 0, 0, + 236, 2, 0, 0, 26, 0, + 1, 0, 252, 2, 0, 0, + 20, 0, 1, 0, 16, 3, + 0, 0, 20, 0, 1, 0, + 36, 3, 0, 0, 20, 0, + 1, 0, 56, 3, 0, 0, + 80, 83, 66, 97, 115, 105, + 99, 86, 101, 114, 116, 101, + 120, 76, 105, 103, 104, 116, + 105, 110, 103, 84, 120, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 65, 112, + 112, 108, 121, 70, 111, 103, + 0, 99, 111, 108, 111, 114, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 65, 100, 100, 83, 112, 101, + 99, 117, 108, 97, 114, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 5, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 110, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 156, 1, 0, 0, 88, 1, + 0, 0, 164, 1, 0, 0, + 88, 1, 0, 0, 173, 1, + 0, 0, 184, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 10, 0, 1, 0, 3, 0, + 200, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 7, 0, 2, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 20, 1, 0, 0, + 44, 1, 0, 0, 1, 0, + 0, 0, 60, 1, 0, 0, + 72, 1, 0, 0, 81, 1, + 0, 0, 88, 1, 0, 0, + 1, 0, 0, 0, 104, 1, + 0, 0, 116, 1, 0, 0, + 81, 1, 0, 0, 88, 1, + 0, 0, 1, 0, 0, 0, + 128, 1, 0, 0, 0, 0, + 0, 0, 81, 1, 0, 0, + 88, 1, 0, 0, 1, 0, + 0, 0, 140, 1, 0, 0, + 20, 1, 0, 0, 152, 1, + 0, 0, 224, 1, 0, 0, + 3, 0, 0, 0, 240, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 2, 0, 228, 176, + 0, 8, 228, 160, 5, 0, 0, 3, 0, 0, 15, 128, - 2, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 4, 0, 0, 4, 1, 0, - 7, 128, 1, 0, 228, 176, - 0, 0, 255, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 7, 128, 0, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 129, 4, 0, - 0, 4, 0, 0, 7, 128, - 1, 0, 255, 176, 2, 0, - 228, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 56, 1, 0, 0, - 64, 0, 0, 0, 78, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 90, 0, 0, 3, 0, 96, + 0, 0, 228, 128, 0, 0, + 228, 176, 4, 0, 0, 4, + 1, 0, 7, 128, 1, 0, + 228, 176, 0, 0, 255, 128, + 0, 0, 228, 128, 4, 0, + 0, 4, 2, 0, 7, 128, + 0, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 129, + 4, 0, 0, 4, 0, 0, + 7, 128, 1, 0, 255, 176, + 2, 0, 228, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 56, 1, + 0, 0, 64, 0, 0, 0, + 78, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, + 98, 16, 0, 3, 242, 16, + 16, 0, 1, 0, 0, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 1, 0, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 242, 0, + 50, 0, 0, 9, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 18, + 70, 18, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 32, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 31, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 96, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 96, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 80, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 80, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 86, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTxNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTxNoFog.inc index cd891a2c782209032b34b12b9a8d4dc2addb12b4..04752bd2f12c06170b77570c6c74e446e8c00cfd 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTxNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_PSBasicVertexLightingTxNoFog.inc @@ -29,14 +29,18 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 397 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" texld r0, t2, s0 - mul r0, r0, t0 - mad r0.xyz, t1, r0.w, r0 - mov oC0, r0 + mul r0, r0, t0 // ::color<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r0.xyz, t1, r0.w, r0 // AddSpecular::color<0,1,2> + mov oC0, r0 // ::PSBasicVertexLightingTxNoFog<0,1,2,3> // approximately 4 instruction slots used (1 texture, 3 arithmetic) ps_4_0 @@ -57,104 +61,209 @@ ret const BYTE BasicEffect_PSBasicVertexLightingTxNoFog[] = { - 68, 88, 66, 67, 107, 144, - 128, 78, 118, 75, 88, 150, - 203, 179, 206, 252, 188, 119, - 149, 100, 1, 0, 0, 0, - 84, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 102, 167, + 231, 71, 98, 80, 177, 139, + 206, 229, 55, 104, 245, 36, + 234, 197, 1, 0, 0, 0, + 204, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 216, 0, 0, 0, 184, 1, - 0, 0, 32, 2, 0, 0, - 65, 111, 110, 57, 160, 0, - 0, 0, 160, 0, 0, 0, - 0, 2, 255, 255, 120, 0, + 80, 3, 0, 0, 48, 4, + 0, 0, 152, 4, 0, 0, + 65, 111, 110, 57, 24, 3, + 0, 0, 24, 3, 0, 0, + 0, 2, 255, 255, 240, 2, 0, 0, 40, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 1, 0, 36, 0, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, + 0, 2, 255, 255, 254, 255, + 157, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 72, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 8, 0, 0, 0, + 196, 0, 0, 0, 4, 0, + 0, 0, 248, 1, 0, 0, + 4, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 67, 58, 92, 65, 84, + 71, 32, 83, 97, 109, 112, + 108, 101, 32, 68, 101, 118, + 101, 108, 111, 112, 109, 101, + 110, 116, 92, 115, 116, 95, + 100, 101, 118, 92, 75, 105, + 116, 115, 92, 68, 105, 114, + 101, 99, 116, 88, 84, 75, + 92, 83, 114, 99, 92, 83, + 104, 97, 100, 101, 114, 115, + 92, 67, 111, 109, 109, 111, + 110, 46, 102, 120, 104, 0, + 171, 171, 40, 0, 0, 0, + 115, 0, 0, 0, 0, 0, + 255, 255, 124, 2, 0, 0, + 0, 0, 255, 255, 136, 2, + 0, 0, 0, 0, 255, 255, + 148, 2, 0, 0, 0, 0, + 255, 255, 160, 2, 0, 0, + 141, 1, 0, 0, 172, 2, + 0, 0, 141, 1, 0, 0, + 188, 2, 0, 0, 26, 0, + 1, 0, 204, 2, 0, 0, + 26, 0, 1, 0, 224, 2, + 0, 0, 80, 83, 66, 97, + 115, 105, 99, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 84, + 120, 78, 111, 70, 111, 103, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 65, 100, 100, 83, + 112, 101, 99, 117, 108, 97, + 114, 0, 99, 111, 108, 111, + 114, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 128, 1, 0, 0, + 84, 1, 0, 0, 136, 1, + 0, 0, 84, 1, 0, 0, + 145, 1, 0, 0, 156, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 10, 0, 1, 0, + 3, 0, 172, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 2, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 4, 1, + 0, 0, 36, 1, 0, 0, + 1, 0, 0, 0, 52, 1, + 0, 0, 64, 1, 0, 0, + 76, 1, 0, 0, 84, 1, + 0, 0, 1, 0, 0, 0, + 100, 1, 0, 0, 0, 0, + 0, 0, 76, 1, 0, 0, + 84, 1, 0, 0, 1, 0, + 0, 0, 112, 1, 0, 0, + 4, 1, 0, 0, 124, 1, + 0, 0, 196, 1, 0, 0, + 3, 0, 0, 0, 212, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 2, 0, 228, 176, + 0, 8, 228, 160, 5, 0, 0, 3, 0, 0, 15, 128, - 2, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 228, 176, - 0, 0, 255, 128, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 216, 0, - 0, 0, 64, 0, 0, 0, - 54, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 0, 228, 128, 0, 0, + 228, 176, 4, 0, 0, 4, + 0, 0, 7, 128, 1, 0, + 228, 176, 0, 0, 255, 128, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 216, 0, 0, 0, 64, 0, + 0, 0, 54, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 246, 15, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 96, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 96, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 80, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 80, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 7, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 7, 0, 0, - 86, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasic.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasic.inc index 87ab32fb2f2b50b1d420508f0a3445574ddfb890..3167d5dab88eebad25d31834b2e188eed31a1c33 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasic.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasic.inc @@ -39,18 +39,28 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSBasic<10> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xyz, c7.x + min oT1.w, r0.x, c7.y // ::VSBasic<7> + +#line 43 + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasic<8,9> + mov oPos.w, r0.z // ::VSBasic<11> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSBasic<0,1,2,3> + mov oT1.xyz, c7.x // ::VSBasic<4,5,6> // approximately 11 instruction slots used vs_4_0 @@ -72,17 +82,17 @@ ret const BYTE BasicEffect_VSBasic[] = { - 68, 88, 66, 67, 188, 140, - 74, 180, 173, 123, 123, 133, - 113, 248, 140, 69, 65, 196, - 202, 186, 1, 0, 0, 0, - 40, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 167, 3, + 36, 114, 168, 80, 114, 14, + 30, 56, 143, 162, 14, 97, + 122, 15, 1, 0, 0, 0, + 36, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 88, 1, 0, 0, 136, 2, - 0, 0, 188, 2, 0, 0, - 65, 111, 110, 57, 32, 1, - 0, 0, 32, 1, 0, 0, - 0, 2, 254, 255, 212, 0, + 84, 4, 0, 0, 132, 5, + 0, 0, 184, 5, 0, 0, + 65, 111, 110, 57, 28, 4, + 0, 0, 28, 4, 0, 0, + 0, 2, 254, 255, 208, 3, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -94,117 +104,244 @@ const BYTE BasicEffect_VSBasic[] = 0, 0, 0, 0, 22, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 7, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 190, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 204, 2, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 5, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 7, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 7, 0, - 85, 160, 9, 0, 0, 3, + 2, 0, 0, 0, 188, 0, + 0, 0, 13, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 144, 2, 0, 0, + 44, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 0, 3, 0, 0, + 0, 0, 255, 255, 24, 3, + 0, 0, 43, 0, 0, 0, + 36, 3, 0, 0, 14, 0, + 0, 0, 52, 3, 0, 0, + 14, 0, 0, 0, 68, 3, + 0, 0, 14, 0, 0, 0, + 84, 3, 0, 0, 43, 0, + 0, 0, 100, 3, 0, 0, + 43, 0, 0, 0, 116, 3, + 0, 0, 43, 0, 0, 0, + 132, 3, 0, 0, 44, 0, + 1, 0, 148, 3, 0, 0, + 44, 0, 1, 0, 168, 3, + 0, 0, 44, 0, 0, 0, + 180, 3, 0, 0, 45, 0, + 0, 0, 192, 3, 0, 0, + 86, 83, 66, 97, 115, 105, + 99, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 80, + 111, 115, 105, 116, 105, 111, + 110, 80, 83, 0, 52, 1, + 0, 0, 60, 1, 0, 0, + 76, 1, 0, 0, 60, 1, + 0, 0, 85, 1, 0, 0, + 60, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 3, 0, 96, 1, + 0, 0, 2, 0, 0, 0, + 255, 255, 255, 255, 10, 0, + 255, 255, 5, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 9, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 10, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 11, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 12, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171, 171, 171, + 212, 1, 0, 0, 60, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 224, 1, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 9, 2, 0, 0, + 60, 1, 0, 0, 52, 1, + 0, 0, 60, 1, 0, 0, + 76, 1, 0, 0, 16, 2, + 0, 0, 32, 2, 0, 0, + 44, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 60, 2, + 0, 0, 6, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 8, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 44, 1, 0, 0, 120, 1, + 0, 0, 6, 0, 0, 0, + 136, 1, 0, 0, 44, 1, + 0, 0, 208, 1, 0, 0, + 232, 1, 0, 0, 1, 0, + 0, 0, 248, 1, 0, 0, + 0, 0, 0, 0, 4, 2, + 0, 0, 92, 2, 0, 0, + 3, 0, 0, 0, 108, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 7, 0, + 15, 160, 0, 0, 0, 0, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 5, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 2, 0, + 228, 160, 11, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 3, 0, 228, 160, + 0, 128, 7, 0, 0, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 7, 0, 85, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 3, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 2, 128, 0, 0, + 228, 144, 4, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 4, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 6, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 1, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 7, 224, - 7, 0, 0, 160, 255, 255, - 0, 0, 83, 72, 68, 82, - 40, 1, 0, 0, 64, 0, - 1, 0, 74, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, + 4, 128, 0, 0, 228, 144, + 6, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 15, 224, 1, 0, 228, 160, + 1, 0, 0, 2, 1, 0, + 7, 224, 7, 0, 0, 160, + 255, 255, 0, 0, 83, 72, + 68, 82, 40, 1, 0, 0, + 64, 0, 1, 0, 74, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 26, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 8, 114, 32, + 16, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 2, 0, + 18, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 17, 0, 0, 8, 130, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 25, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 24, 0, + 0, 0, 17, 0, 0, 8, + 130, 32, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 79, 83, 71, 78, 100, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 79, 83, - 71, 78, 100, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, + 15, 0, 0, 0, 80, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 80, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 0, - 0, 0, 67, 79, 76, 79, - 82, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 171, 171 + 1, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicNoFog.inc index cc8551320a8a610ca0ca9fa49f1676973affdc77..61f31576cab8dee32d7acbcdb478219bacb7d79e 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicNoFog.inc @@ -36,14 +36,20 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dp4 oPos.z, v0, c4 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 + dcl_texcoord v0 // vin<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSBasicNoFog<6> + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 56 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicNoFog<4,5> + mov oPos.w, r0.z // ::VSBasicNoFog<7> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSBasicNoFog<0,1,2,3> // approximately 7 instruction slots used vs_4_0 @@ -62,17 +68,17 @@ ret const BYTE BasicEffect_VSBasicNoFog[] = { - 68, 88, 66, 67, 20, 3, - 221, 125, 108, 131, 107, 138, - 40, 72, 25, 121, 1, 41, - 145, 196, 1, 0, 0, 0, - 100, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 73, 95, + 170, 11, 2, 152, 180, 140, + 155, 123, 152, 92, 110, 224, + 155, 128, 1, 0, 0, 0, + 36, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 248, 0, 0, 0, 220, 1, - 0, 0, 16, 2, 0, 0, - 65, 111, 110, 57, 192, 0, - 0, 0, 192, 0, 0, 0, - 0, 2, 254, 255, 128, 0, + 184, 3, 0, 0, 156, 4, + 0, 0, 208, 4, 0, 0, + 65, 111, 110, 57, 128, 3, + 0, 0, 128, 3, 0, 0, + 0, 2, 254, 255, 64, 3, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -82,86 +88,204 @@ const BYTE BasicEffect_VSBasicNoFog[] = 0, 0, 0, 0, 22, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 4, 0, + 0, 2, 254, 255, 254, 255, + 175, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 144, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 8, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 84, 2, 0, 0, + 4, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 196, 2, 0, 0, + 43, 0, 0, 0, 208, 2, + 0, 0, 43, 0, 0, 0, + 224, 2, 0, 0, 43, 0, + 0, 0, 240, 2, 0, 0, + 43, 0, 0, 0, 0, 3, + 0, 0, 56, 0, 1, 0, + 16, 3, 0, 0, 56, 0, + 1, 0, 36, 3, 0, 0, + 44, 0, 0, 0, 48, 3, + 0, 0, 86, 83, 66, 97, + 115, 105, 99, 78, 111, 70, + 111, 103, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 17, 1, 0, 0, 28, 1, + 0, 0, 44, 1, 0, 0, + 28, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 8, 0, + 1, 0, 2, 0, 56, 1, + 0, 0, 1, 0, 0, 0, + 255, 255, 255, 255, 6, 0, + 255, 255, 5, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 6, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171, 171, 171, + 140, 1, 0, 0, 28, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 152, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 193, 1, 0, 0, + 28, 1, 0, 0, 17, 1, + 0, 0, 28, 1, 0, 0, + 200, 1, 0, 0, 212, 1, + 0, 0, 228, 1, 0, 0, + 240, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 0, 2, + 0, 0, 2, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 4, 1, 0, 0, 72, 1, + 0, 0, 4, 0, 0, 0, + 88, 1, 0, 0, 4, 1, + 0, 0, 136, 1, 0, 0, + 160, 1, 0, 0, 1, 0, + 0, 0, 176, 1, 0, 0, + 0, 0, 0, 0, 188, 1, + 0, 0, 32, 2, 0, 0, + 3, 0, 0, 0, 48, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 4, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 2, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, + 0, 0, 2, 128, 0, 0, + 228, 144, 3, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 5, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 1, 0, 228, 160, 255, 255, - 0, 0, 83, 72, 68, 82, - 220, 0, 0, 0, 64, 0, - 1, 0, 55, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, + 4, 128, 0, 0, 228, 144, + 5, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 15, 224, 1, 0, 228, 160, + 255, 255, 0, 0, 83, 72, + 68, 82, 220, 0, 0, 0, + 64, 0, 1, 0, 55, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 26, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 1, 0, + 66, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 44, 0, 0, 0, 1, 0, + 24, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 25, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 79, 83, 71, 78, + 76, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, + 0, 0, 15, 0, 0, 0, + 62, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, 111, 110, 0, - 79, 83, 71, 78, 76, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 171, 171 + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLight.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLight.inc index bd3a7a1f59c5a29886afdd019178296943b34d3d..2296ab469473f942ab4a230c4ad9100ddcf56313 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLight.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLight.inc @@ -43,41 +43,69 @@ // vs_2_0 def c19, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r0.x, v1, c12 dp3 r0.y, v1, c13 dp3 r0.z, v1, c14 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - sge r0.y, r0.x, c19.x - mul r0.x, r0.x, r0.y + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 + dp3 r0.x, -c4, r1 // ::dotL<0> + +#line 39 + sge r0.y, r0.x, c19.x // ::zeroL<0> + mul r0.x, r0.x, r0.y // ::diffuse<0> + +#line 46 mul r0.xzw, r0.x, c5.xyyz - mov r2.xyz, c1 - mad oT0.xyz, r0.xzww, r2, c2 - dp4 r2.x, v0, c9 - dp4 r2.y, v0, c10 - dp4 r2.z, v0, c11 + mov r2.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0.xzww, r2, c2 // ::VSBasicOneLight<0,1,2> + +#line 57 + dp4 r2.x, v0, c9 // ::pos_ws<0> + dp4 r2.y, v0, c10 // ::pos_ws<1> + dp4 r2.z, v0, c11 // ::pos_ws<2> add r0.xzw, -r2.xyyz, c7.xyyz - nrm r2.xyz, r0.xzww + nrm r2.xyz, r0.xzww // ::eyeVector<0,1,2> + +#line 33 add r0.xzw, r2.xyyz, -c4.xyyz - nrm r2.xyz, r0.xzww - dp3 r0.x, r2, r1 + nrm r2.xyz, r0.xzww // ::halfVectors<0,1,2> + +#line 37 + dp3 r0.x, r2, r1 // ::dotH<0> + +#line 42 max r0.x, r0.x, c19.x mul r0.x, r0.y, r0.x - pow r1.x, r0.x, c3.w + pow r1.x, r0.x, c3.w // ::specular<0> + +#line 47 mul r0.xyz, r1.x, c6 - mul oT1.xyz, r0, c3 - dp4 oPos.z, v0, c17 + mul oT1.xyz, r0, c3 // ::VSBasicOneLight<4,5,6> + +#line 63 + dp4 oPos.z, v0, c17 // ::VSBasicOneLight<10> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c8 max r0.x, r0.x, c19.x - min oT1.w, r0.x, c19.y - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c18 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c1.w + min oT1.w, r0.x, c19.y // ::VSBasicOneLight<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c15 // ::vout<0> + dp4 r0.y, v0, c16 // ::vout<1> + dp4 r0.z, v0, c18 // ::vout<3> + +#line 209 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicOneLight<8,9> + mov oPos.w, r0.z // ::VSBasicOneLight<11> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c1.w // ::VSBasicOneLight<3> // approximately 41 instruction slots used vs_4_0 @@ -130,17 +158,17 @@ ret const BYTE BasicEffect_VSBasicOneLight[] = { - 68, 88, 66, 67, 84, 60, - 17, 149, 27, 169, 41, 235, - 61, 168, 242, 18, 208, 232, - 50, 117, 1, 0, 0, 0, - 60, 8, 0, 0, 4, 0, + 68, 88, 66, 67, 126, 201, + 141, 129, 108, 101, 79, 192, + 42, 19, 6, 176, 114, 68, + 39, 18, 1, 0, 0, 0, + 80, 14, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 224, 2, 0, 0, 124, 7, - 0, 0, 208, 7, 0, 0, - 65, 111, 110, 57, 168, 2, - 0, 0, 168, 2, 0, 0, - 0, 2, 254, 255, 56, 2, + 244, 8, 0, 0, 144, 13, + 0, 0, 228, 13, 0, 0, + 65, 111, 110, 57, 188, 8, + 0, 0, 188, 8, 0, 0, + 0, 2, 254, 255, 76, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -158,221 +186,465 @@ const BYTE BasicEffect_VSBasicOneLight[] = 0, 0, 0, 0, 19, 0, 7, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 19, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 132, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 228, 5, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 8, 0, - 0, 3, 0, 0, 1, 128, - 1, 0, 228, 144, 12, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 36, 0, 0, 0, + 16, 1, 0, 0, 13, 0, + 0, 0, 224, 4, 0, 0, + 100, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 24, 6, 0, 0, 0, 0, + 255, 255, 48, 6, 0, 0, + 0, 0, 255, 255, 60, 6, + 0, 0, 59, 0, 0, 0, + 72, 6, 0, 0, 59, 0, + 0, 0, 88, 6, 0, 0, + 59, 0, 0, 0, 104, 6, + 0, 0, 59, 0, 0, 0, + 120, 6, 0, 0, 36, 0, + 0, 0, 132, 6, 0, 0, + 39, 0, 0, 0, 148, 6, + 0, 0, 41, 0, 0, 0, + 164, 6, 0, 0, 46, 0, + 0, 0, 180, 6, 0, 0, + 46, 0, 0, 0, 196, 6, + 0, 0, 46, 0, 0, 0, + 208, 6, 0, 0, 57, 0, + 0, 0, 228, 6, 0, 0, + 57, 0, 0, 0, 244, 6, + 0, 0, 57, 0, 0, 0, + 4, 7, 0, 0, 58, 0, + 0, 0, 20, 7, 0, 0, + 58, 0, 0, 0, 36, 7, + 0, 0, 33, 0, 0, 0, + 48, 7, 0, 0, 33, 0, + 0, 0, 64, 7, 0, 0, + 37, 0, 0, 0, 76, 7, + 0, 0, 42, 0, 0, 0, + 92, 7, 0, 0, 42, 0, + 0, 0, 108, 7, 0, 0, + 42, 0, 0, 0, 124, 7, + 0, 0, 47, 0, 0, 0, + 140, 7, 0, 0, 47, 0, + 0, 0, 156, 7, 0, 0, + 63, 0, 0, 0, 172, 7, + 0, 0, 14, 0, 1, 0, + 188, 7, 0, 0, 14, 0, + 1, 0, 204, 7, 0, 0, + 14, 0, 1, 0, 220, 7, + 0, 0, 63, 0, 0, 0, + 236, 7, 0, 0, 63, 0, + 0, 0, 252, 7, 0, 0, + 63, 0, 0, 0, 12, 8, + 0, 0, 209, 0, 2, 0, + 28, 8, 0, 0, 209, 0, + 2, 0, 48, 8, 0, 0, + 46, 0, 0, 0, 60, 8, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 66, 97, 115, 105, + 99, 79, 110, 101, 76, 105, + 103, 104, 116, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 80, 83, 0, + 116, 2, 0, 0, 124, 2, + 0, 0, 140, 2, 0, 0, + 124, 2, 0, 0, 149, 2, + 0, 0, 124, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 3, 0, + 160, 2, 0, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 25, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 26, 0, + 0, 0, 255, 255, 255, 255, + 10, 0, 255, 255, 29, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 33, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 34, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 11, 0, 35, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 100, 111, + 116, 72, 0, 171, 171, 171, + 20, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 7, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 17, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 13, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 14, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 15, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 23, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 78, 111, 114, + 109, 97, 108, 0, 240, 3, + 0, 0, 124, 2, 0, 0, + 249, 3, 0, 0, 36, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 7, 0, 1, 0, + 2, 0, 0, 4, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 61, 4, + 0, 0, 124, 2, 0, 0, + 116, 2, 0, 0, 124, 2, + 0, 0, 140, 2, 0, 0, + 36, 3, 0, 0, 68, 4, + 0, 0, 80, 4, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 96, 4, 0, 0, 30, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 31, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 32, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 97, 108, 0, 6, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 122, 101, + 114, 111, 76, 0, 171, 171, + 8, 0, 0, 0, 255, 255, + 0, 0, 255, 255, 255, 255, + 48, 2, 0, 0, 59, 2, + 0, 0, 72, 2, 0, 0, + 1, 0, 0, 0, 88, 2, + 0, 0, 0, 0, 0, 0, + 100, 2, 0, 0, 184, 2, + 0, 0, 7, 0, 0, 0, + 200, 2, 0, 0, 0, 0, + 0, 0, 28, 3, 0, 0, + 36, 3, 0, 0, 1, 0, + 0, 0, 52, 3, 0, 0, + 0, 0, 0, 0, 64, 3, + 0, 0, 36, 3, 0, 0, + 1, 0, 0, 0, 72, 3, + 0, 0, 0, 0, 0, 0, + 84, 3, 0, 0, 36, 3, + 0, 0, 1, 0, 0, 0, + 92, 3, 0, 0, 0, 0, + 0, 0, 104, 3, 0, 0, + 36, 3, 0, 0, 1, 0, + 0, 0, 116, 3, 0, 0, + 0, 0, 0, 0, 128, 3, + 0, 0, 140, 3, 0, 0, + 1, 0, 0, 0, 156, 3, + 0, 0, 0, 0, 0, 0, + 168, 3, 0, 0, 124, 2, + 0, 0, 3, 0, 0, 0, + 176, 3, 0, 0, 0, 0, + 0, 0, 212, 3, 0, 0, + 36, 3, 0, 0, 1, 0, + 0, 0, 224, 3, 0, 0, + 100, 2, 0, 0, 236, 3, + 0, 0, 16, 4, 0, 0, + 2, 0, 0, 0, 32, 4, + 0, 0, 0, 0, 0, 0, + 56, 4, 0, 0, 128, 4, + 0, 0, 3, 0, 0, 0, + 144, 4, 0, 0, 0, 0, + 0, 0, 180, 4, 0, 0, + 36, 3, 0, 0, 1, 0, + 0, 0, 192, 4, 0, 0, + 0, 0, 0, 0, 204, 4, + 0, 0, 36, 3, 0, 0, + 1, 0, 0, 0, 212, 4, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 19, 0, + 15, 160, 0, 0, 0, 0, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 8, 0, 0, 3, 0, 0, + 1, 128, 1, 0, 228, 144, + 12, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 13, 0, 228, 160, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 13, 0, 228, 160, + 0, 0, 4, 128, 1, 0, + 228, 144, 14, 0, 228, 160, + 36, 0, 0, 2, 1, 0, + 7, 128, 0, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 4, 128, 1, 0, 228, 144, - 14, 0, 228, 160, 36, 0, - 0, 2, 1, 0, 7, 128, - 0, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 1, 128, - 4, 0, 228, 161, 1, 0, - 228, 128, 13, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 0, 128, 19, 0, 0, 160, + 1, 128, 4, 0, 228, 161, + 1, 0, 228, 128, 13, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 0, 128, 19, 0, + 0, 160, 5, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 0, 0, 85, 128, 5, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 0, 0, 85, 128, 5, 0, - 0, 3, 0, 0, 13, 128, - 0, 0, 0, 128, 5, 0, - 148, 160, 1, 0, 0, 2, - 2, 0, 7, 128, 1, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 7, 224, 0, 0, - 248, 128, 2, 0, 228, 128, - 2, 0, 228, 160, 9, 0, - 0, 3, 2, 0, 1, 128, - 0, 0, 228, 144, 9, 0, - 228, 160, 9, 0, 0, 3, - 2, 0, 2, 128, 0, 0, - 228, 144, 10, 0, 228, 160, + 13, 128, 0, 0, 0, 128, + 5, 0, 148, 160, 1, 0, + 0, 2, 2, 0, 7, 128, + 1, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 224, + 0, 0, 248, 128, 2, 0, + 228, 128, 2, 0, 228, 160, 9, 0, 0, 3, 2, 0, - 4, 128, 0, 0, 228, 144, - 11, 0, 228, 160, 2, 0, + 1, 128, 0, 0, 228, 144, + 9, 0, 228, 160, 9, 0, + 0, 3, 2, 0, 2, 128, + 0, 0, 228, 144, 10, 0, + 228, 160, 9, 0, 0, 3, + 2, 0, 4, 128, 0, 0, + 228, 144, 11, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 13, 128, 2, 0, 148, 129, + 7, 0, 148, 160, 36, 0, + 0, 2, 2, 0, 7, 128, + 0, 0, 248, 128, 2, 0, 0, 3, 0, 0, 13, 128, - 2, 0, 148, 129, 7, 0, - 148, 160, 36, 0, 0, 2, + 2, 0, 148, 128, 4, 0, + 148, 161, 36, 0, 0, 2, 2, 0, 7, 128, 0, 0, - 248, 128, 2, 0, 0, 3, - 0, 0, 13, 128, 2, 0, - 148, 128, 4, 0, 148, 161, - 36, 0, 0, 2, 2, 0, - 7, 128, 0, 0, 248, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 2, 0, 228, 128, - 1, 0, 228, 128, 11, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 19, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 85, 128, 0, 0, 0, 128, - 32, 0, 0, 3, 1, 0, + 248, 128, 8, 0, 0, 3, + 0, 0, 1, 128, 2, 0, + 228, 128, 1, 0, 228, 128, + 11, 0, 0, 3, 0, 0, 1, 128, 0, 0, 0, 128, - 3, 0, 255, 160, 5, 0, - 0, 3, 0, 0, 7, 128, - 1, 0, 0, 128, 6, 0, - 228, 160, 5, 0, 0, 3, - 1, 0, 7, 224, 0, 0, - 228, 128, 3, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 192, 0, 0, 228, 144, - 17, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 8, 0, - 228, 160, 11, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 0, 128, 19, 0, 0, 160, - 10, 0, 0, 3, 1, 0, - 8, 224, 0, 0, 0, 128, - 19, 0, 85, 160, 9, 0, + 19, 0, 0, 160, 5, 0, 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 15, 0, + 0, 0, 85, 128, 0, 0, + 0, 128, 32, 0, 0, 3, + 1, 0, 1, 128, 0, 0, + 0, 128, 3, 0, 255, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 1, 0, 0, 128, + 6, 0, 228, 160, 5, 0, + 0, 3, 1, 0, 7, 224, + 0, 0, 228, 128, 3, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 16, 0, 228, 160, + 0, 0, 4, 192, 0, 0, + 228, 144, 17, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 18, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 170, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 192, 0, 0, 170, 128, - 1, 0, 0, 2, 0, 0, - 8, 224, 1, 0, 255, 160, - 255, 255, 0, 0, 83, 72, - 68, 82, 148, 4, 0, 0, - 64, 0, 1, 0, 37, 1, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 26, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 3, 0, 0, 0, - 16, 0, 0, 8, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 19, 0, + 1, 128, 0, 0, 228, 144, + 8, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 19, 0, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 19, 0, 85, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 15, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 16, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 18, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 8, 224, 1, 0, + 255, 160, 255, 255, 0, 0, + 83, 72, 68, 82, 148, 4, + 0, 0, 64, 0, 1, 0, + 37, 1, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 26, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 114, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 3, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, + 19, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 21, 0, 0, 0, - 16, 0, 0, 7, 130, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, + 0, 0, 20, 0, 0, 0, + 16, 0, 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 21, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 29, 0, - 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 18, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 130, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 226, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 6, 137, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 50, 0, 0, 11, 114, 32, + 16, 0, 0, 9, 130, 0, 16, 0, 0, 0, 0, 0, - 150, 7, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 29, 0, 0, 7, 18, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 0, 1, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 8, 226, 0, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 137, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 17, 0, 0, 8, 66, 0, + 0, 0, 15, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 9, - 226, 0, 16, 0, 1, 0, - 0, 0, 6, 9, 16, 128, - 65, 0, 0, 0, 2, 0, - 0, 0, 6, 137, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 150, 7, 16, 0, - 1, 0, 0, 0, 150, 7, - 16, 0, 1, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 226, 0, 16, 0, 1, 0, - 0, 0, 86, 14, 16, 0, - 1, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 6, 137, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 17, 0, 0, 8, + 66, 0, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, + 0, 9, 226, 0, 16, 0, + 1, 0, 0, 0, 6, 9, + 16, 128, 65, 0, 0, 0, + 2, 0, 0, 0, 6, 137, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 150, 7, 16, 0, 1, 0, 0, 0, @@ -380,106 +652,121 @@ const BYTE BasicEffect_VSBasicOneLight[] = 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 226, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 0, 0, 0, 0, 50, 0, + 0, 11, 226, 0, 16, 0, + 1, 0, 0, 0, 86, 14, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 137, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 86, 14, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 18, 0, 16, 0, 0, 0, + 150, 7, 16, 0, 1, 0, 0, 0, 150, 7, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 52, 0, 0, 7, 18, 0, + 1, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 56, 0, + 56, 0, 0, 7, 226, 0, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 86, 14, 16, 0, + 1, 0, 0, 0, 16, 0, 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 150, 7, 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 47, 0, 0, 5, + 70, 2, 16, 0, 0, 0, + 0, 0, 52, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 47, 0, + 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 58, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 18, 0, + 56, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 56, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 58, 128, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 25, 0, 0, 5, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 0, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 17, 32, 0, 8, 130, 32, + 0, 0, 9, 0, 0, 0, + 56, 0, 0, 8, 114, 32, 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 2, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 14, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 2, 0, + 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 76, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 25, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 76, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 68, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 171, 79, 83, 71, 78, - 100, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 171, 79, 83, + 71, 78, 100, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 80, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 86, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 80, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 15, 0, + 0, 0, 67, 79, 76, 79, + 82, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTx.inc index 33bda7922d56aeee84a2fe1dbd331483583016d1..64741abf81ce6783c8162222d4389d32805dc540 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTx.inc @@ -45,43 +45,73 @@ // vs_2_0 def c19, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r0.x, v1, c12 dp3 r0.y, v1, c13 dp3 r0.z, v1, c14 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - sge r0.y, r0.x, c19.x - mul r0.x, r0.x, r0.y + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 + dp3 r0.x, -c4, r1 // ::dotL<0> + +#line 39 + sge r0.y, r0.x, c19.x // ::zeroL<0> + mul r0.x, r0.x, r0.y // ::diffuse<0> + +#line 46 mul r0.xzw, r0.x, c5.xyyz - mov r2.xyz, c1 - mad oT0.xyz, r0.xzww, r2, c2 - dp4 r2.x, v0, c9 - dp4 r2.y, v0, c10 - dp4 r2.z, v0, c11 + mov r2.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0.xzww, r2, c2 // ::VSBasicOneLightTx<0,1,2> + +#line 57 + dp4 r2.x, v0, c9 // ::pos_ws<0> + dp4 r2.y, v0, c10 // ::pos_ws<1> + dp4 r2.z, v0, c11 // ::pos_ws<2> add r0.xzw, -r2.xyyz, c7.xyyz - nrm r2.xyz, r0.xzww + nrm r2.xyz, r0.xzww // ::eyeVector<0,1,2> + +#line 33 add r0.xzw, r2.xyyz, -c4.xyyz - nrm r2.xyz, r0.xzww - dp3 r0.x, r2, r1 + nrm r2.xyz, r0.xzww // ::halfVectors<0,1,2> + +#line 37 + dp3 r0.x, r2, r1 // ::dotH<0> + +#line 42 max r0.x, r0.x, c19.x mul r0.x, r0.y, r0.x - pow r1.x, r0.x, c3.w + pow r1.x, r0.x, c3.w // ::specular<0> + +#line 47 mul r0.xyz, r1.x, c6 - mul oT1.xyz, r0, c3 - dp4 oPos.z, v0, c17 + mul oT1.xyz, r0, c3 // ::VSBasicOneLightTx<4,5,6> + +#line 63 + dp4 oPos.z, v0, c17 // ::VSBasicOneLightTx<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c8 max r0.x, r0.x, c19.x - min oT1.w, r0.x, c19.y - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c18 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c1.w - mov oT2.xy, v2 + min oT1.w, r0.x, c19.y // ::VSBasicOneLightTx<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c15 // ::vout<0> + dp4 r0.y, v0, c16 // ::vout<1> + dp4 r0.z, v0, c18 // ::vout<3> + +#line 235 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicOneLightTx<10,11> + mov oPos.w, r0.z // ::VSBasicOneLightTx<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c1.w // ::VSBasicOneLightTx<3> + +#line 242 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mov oT2.xy, v2 // ::VSBasicOneLightTx<8,9> // approximately 42 instruction slots used vs_4_0 @@ -137,17 +167,17 @@ ret const BYTE BasicEffect_VSBasicOneLightTx[] = { - 68, 88, 66, 67, 151, 18, - 223, 247, 234, 221, 97, 109, - 91, 72, 11, 181, 222, 38, - 149, 27, 1, 0, 0, 0, - 192, 8, 0, 0, 4, 0, + 68, 88, 66, 67, 134, 215, + 145, 17, 37, 56, 176, 20, + 208, 22, 88, 246, 152, 83, + 101, 85, 1, 0, 0, 0, + 44, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 248, 2, 0, 0, 192, 7, - 0, 0, 52, 8, 0, 0, - 65, 111, 110, 57, 192, 2, - 0, 0, 192, 2, 0, 0, - 0, 2, 254, 255, 80, 2, + 100, 9, 0, 0, 44, 14, + 0, 0, 160, 14, 0, 0, + 65, 111, 110, 57, 44, 9, + 0, 0, 44, 9, 0, 0, + 0, 2, 254, 255, 188, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -165,7 +195,281 @@ const BYTE BasicEffect_VSBasicOneLightTx[] = 0, 0, 0, 0, 19, 0, 7, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 154, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 60, 6, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 38, 0, 0, 0, + 16, 1, 0, 0, 13, 0, + 0, 0, 56, 5, 0, 0, + 116, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 112, 6, 0, 0, 0, 0, + 255, 255, 136, 6, 0, 0, + 0, 0, 255, 255, 148, 6, + 0, 0, 0, 0, 255, 255, + 160, 6, 0, 0, 59, 0, + 0, 0, 172, 6, 0, 0, + 59, 0, 0, 0, 188, 6, + 0, 0, 59, 0, 0, 0, + 204, 6, 0, 0, 59, 0, + 0, 0, 220, 6, 0, 0, + 36, 0, 0, 0, 232, 6, + 0, 0, 39, 0, 0, 0, + 248, 6, 0, 0, 41, 0, + 0, 0, 8, 7, 0, 0, + 46, 0, 0, 0, 24, 7, + 0, 0, 46, 0, 0, 0, + 40, 7, 0, 0, 46, 0, + 0, 0, 52, 7, 0, 0, + 57, 0, 0, 0, 72, 7, + 0, 0, 57, 0, 0, 0, + 88, 7, 0, 0, 57, 0, + 0, 0, 104, 7, 0, 0, + 58, 0, 0, 0, 120, 7, + 0, 0, 58, 0, 0, 0, + 136, 7, 0, 0, 33, 0, + 0, 0, 148, 7, 0, 0, + 33, 0, 0, 0, 164, 7, + 0, 0, 37, 0, 0, 0, + 176, 7, 0, 0, 42, 0, + 0, 0, 192, 7, 0, 0, + 42, 0, 0, 0, 208, 7, + 0, 0, 42, 0, 0, 0, + 224, 7, 0, 0, 47, 0, + 0, 0, 240, 7, 0, 0, + 47, 0, 0, 0, 0, 8, + 0, 0, 63, 0, 0, 0, + 16, 8, 0, 0, 14, 0, + 1, 0, 32, 8, 0, 0, + 14, 0, 1, 0, 48, 8, + 0, 0, 14, 0, 1, 0, + 64, 8, 0, 0, 63, 0, + 0, 0, 80, 8, 0, 0, + 63, 0, 0, 0, 96, 8, + 0, 0, 63, 0, 0, 0, + 112, 8, 0, 0, 235, 0, + 2, 0, 128, 8, 0, 0, + 235, 0, 2, 0, 148, 8, + 0, 0, 46, 0, 0, 0, + 160, 8, 0, 0, 242, 0, + 2, 0, 172, 8, 0, 0, + 80, 97, 114, 97, 109, 101, + 116, 101, 114, 115, 0, 68, + 105, 102, 102, 117, 115, 101, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 86, 83, + 66, 97, 115, 105, 99, 79, + 110, 101, 76, 105, 103, 104, + 116, 84, 120, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 134, 2, 0, 0, 144, 2, + 0, 0, 160, 2, 0, 0, + 144, 2, 0, 0, 169, 2, + 0, 0, 180, 2, 0, 0, + 196, 2, 0, 0, 144, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 14, 0, 1, 0, + 4, 0, 208, 2, 0, 0, + 13, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 26, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 27, 0, 0, 0, 255, 255, + 255, 255, 12, 0, 255, 255, + 30, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 34, 0, 0, 0, 10, 0, + 11, 0, 255, 255, 255, 255, + 35, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 13, 0, + 36, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 37, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 100, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 100, 111, 116, 72, 0, 171, + 171, 171, 21, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 8, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 101, 121, + 101, 86, 101, 99, 116, 111, + 114, 0, 171, 171, 18, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 104, 97, + 108, 102, 86, 101, 99, 116, + 111, 114, 115, 0, 3, 0, + 3, 0, 3, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 112, 111, 115, 95, + 119, 115, 0, 171, 14, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 15, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 16, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 115, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 24, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 78, + 111, 114, 109, 97, 108, 0, + 52, 4, 0, 0, 144, 2, + 0, 0, 61, 4, 0, 0, + 104, 3, 0, 0, 169, 2, + 0, 0, 180, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 9, 0, 1, 0, 3, 0, + 68, 4, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 3, 0, + 0, 0, 7, 0, 8, 0, + 255, 255, 255, 255, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 149, 4, 0, 0, + 144, 2, 0, 0, 134, 2, + 0, 0, 144, 2, 0, 0, + 160, 2, 0, 0, 104, 3, + 0, 0, 156, 4, 0, 0, + 168, 4, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 184, 4, + 0, 0, 31, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 32, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 33, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 122, 101, 114, 111, + 76, 0, 171, 171, 9, 0, + 0, 0, 255, 255, 0, 0, + 255, 255, 255, 255, 64, 2, + 0, 0, 75, 2, 0, 0, + 88, 2, 0, 0, 1, 0, + 0, 0, 104, 2, 0, 0, + 0, 0, 0, 0, 116, 2, + 0, 0, 240, 2, 0, 0, + 8, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 96, 3, 0, 0, 104, 3, + 0, 0, 1, 0, 0, 0, + 120, 3, 0, 0, 0, 0, + 0, 0, 132, 3, 0, 0, + 104, 3, 0, 0, 1, 0, + 0, 0, 140, 3, 0, 0, + 0, 0, 0, 0, 152, 3, + 0, 0, 104, 3, 0, 0, + 1, 0, 0, 0, 160, 3, + 0, 0, 0, 0, 0, 0, + 172, 3, 0, 0, 104, 3, + 0, 0, 1, 0, 0, 0, + 184, 3, 0, 0, 0, 0, + 0, 0, 196, 3, 0, 0, + 208, 3, 0, 0, 1, 0, + 0, 0, 224, 3, 0, 0, + 0, 0, 0, 0, 236, 3, + 0, 0, 144, 2, 0, 0, + 3, 0, 0, 0, 244, 3, + 0, 0, 0, 0, 0, 0, + 24, 4, 0, 0, 104, 3, + 0, 0, 1, 0, 0, 0, + 36, 4, 0, 0, 116, 2, + 0, 0, 48, 4, 0, 0, + 92, 4, 0, 0, 3, 0, + 0, 0, 108, 4, 0, 0, + 0, 0, 0, 0, 144, 4, + 0, 0, 216, 4, 0, 0, + 3, 0, 0, 0, 232, 4, + 0, 0, 0, 0, 0, 0, + 12, 5, 0, 0, 104, 3, + 0, 0, 1, 0, 0, 0, + 24, 5, 0, 0, 0, 0, + 0, 0, 36, 5, 0, 0, + 104, 3, 0, 0, 1, 0, + 0, 0, 44, 5, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 19, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTxVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTxVc.inc index 59f0ffd808f740d0d00ed2555a89be68634ef2e1..97cacbfacc5c5b3c515ba3a48f01e1e7617fcccb 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTxVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightTxVc.inc @@ -46,44 +46,72 @@ // vs_2_0 def c19, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dp4 r0.x, v0, c9 - dp4 r0.y, v0, c10 - dp4 r0.z, v0, c11 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + +#line 57 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c9 // ::pos_ws<0> + dp4 r0.y, v0, c10 // ::pos_ws<1> + dp4 r0.z, v0, c11 // ::pos_ws<2> add r0.xyz, -r0, c7 - nrm r1.xyz, r0 + nrm r1.xyz, r0 // ::eyeVector<0,1,2> + +#line 33 add r0.xyz, r1, -c4 - nrm r1.xyz, r0 + nrm r1.xyz, r0 // ::halfVectors<0,1,2> + +#line 59 dp3 r0.x, v1, c12 dp3 r0.y, v1, c13 dp3 r0.z, v1, c14 - nrm r2.xyz, r0 - dp3 r0.x, r1, r2 - dp3 r0.y, -c4, r2 + nrm r2.xyz, r0 // ::worldNormal<0,1,2> + +#line 37 + dp3 r0.x, r1, r2 // ::dotH<0> + dp3 r0.y, -c4, r2 // ::dotL<0> + +#line 42 max r0.x, r0.x, c19.x - sge r0.z, r0.y, c19.x - mul r0.xy, r0.zyzw, r0.xzzw - pow r1.x, r0.x, c3.w + +#line 39 + sge r0.z, r0.y, c19.x // ::zeroL<0> + mul r0.xy, r0.zyzw, r0.xzzw // ::diffuse<0> + pow r1.x, r0.x, c3.w // ::specular<0> + +#line 47 mul r0.xzw, r1.x, c6.xyyz - mul oT1.xyz, r0.xzww, c3 + mul oT1.xyz, r0.xzww, c3 // ::VSBasicOneLightTxVc<4,5,6> mul r0.xyz, r0.y, c5 - mov r1.xyz, c1 - mad r0.xyz, r0, r1, c2 - mul oT0.xyz, r0, v3 - dp4 oPos.z, v0, c17 + mov r1.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad r0.xyz, r0, r1, c2 // ::result<0,1,2> + +#line 257 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0.xyz, r0, v3 // ::VSBasicOneLightTxVc<0,1,2> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 oPos.z, v0, c17 // ::VSBasicOneLightTxVc<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c8 max r0.x, r0.x, c19.x - min oT1.w, r0.x, c19.y - mul oT0.w, v3.w, c1.w - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c18 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT2.xy, v2 + min oT1.w, r0.x, c19.y // ::VSBasicOneLightTxVc<7> + +#line 257 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0.w, v3.w, c1.w // ::VSBasicOneLightTxVc<3> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c15 // ::vout<0> + dp4 r0.y, v0, c16 // ::vout<1> + dp4 r0.z, v0, c18 // ::vout<3> + +#line 249 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicOneLightTxVc<10,11> + mov oPos.w, r0.z // ::VSBasicOneLightTxVc<13> + +#line 256 + mov oT2.xy, v2 // ::VSBasicOneLightTxVc<8,9> // approximately 42 instruction slots used vs_4_0 @@ -141,17 +169,17 @@ ret const BYTE BasicEffect_VSBasicOneLightTxVc[] = { - 68, 88, 66, 67, 165, 177, - 219, 69, 28, 96, 206, 195, - 78, 39, 168, 253, 196, 43, - 71, 185, 1, 0, 0, 0, - 32, 9, 0, 0, 4, 0, + 68, 88, 66, 67, 151, 80, + 197, 35, 22, 212, 204, 240, + 24, 227, 137, 220, 42, 70, + 119, 97, 1, 0, 0, 0, + 248, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 8, 3, 0, 0, 0, 8, - 0, 0, 148, 8, 0, 0, - 65, 111, 110, 57, 208, 2, - 0, 0, 208, 2, 0, 0, - 0, 2, 254, 255, 96, 2, + 224, 9, 0, 0, 216, 14, + 0, 0, 108, 15, 0, 0, + 65, 111, 110, 57, 168, 9, + 0, 0, 168, 9, 0, 0, + 0, 2, 254, 255, 56, 9, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -169,7 +197,299 @@ const BYTE BasicEffect_VSBasicOneLightTxVc[] = 0, 0, 0, 0, 19, 0, 7, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 181, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 168, 6, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 39, 0, 0, 0, + 16, 1, 0, 0, 14, 0, + 0, 0, 144, 5, 0, 0, + 124, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 66, + 97, 115, 105, 99, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 67, 111, 109, 109, + 111, 110, 46, 102, 120, 104, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 188, 0, + 0, 0, 0, 0, 255, 255, + 220, 6, 0, 0, 0, 0, + 255, 255, 244, 6, 0, 0, + 0, 0, 255, 255, 0, 7, + 0, 0, 0, 0, 255, 255, + 12, 7, 0, 0, 0, 0, + 255, 255, 24, 7, 0, 0, + 57, 0, 0, 0, 36, 7, + 0, 0, 57, 0, 0, 0, + 52, 7, 0, 0, 57, 0, + 0, 0, 68, 7, 0, 0, + 58, 0, 0, 0, 84, 7, + 0, 0, 58, 0, 0, 0, + 100, 7, 0, 0, 33, 0, + 0, 0, 112, 7, 0, 0, + 33, 0, 0, 0, 128, 7, + 0, 0, 59, 0, 0, 0, + 140, 7, 0, 0, 59, 0, + 0, 0, 156, 7, 0, 0, + 59, 0, 0, 0, 172, 7, + 0, 0, 59, 0, 0, 0, + 188, 7, 0, 0, 37, 0, + 0, 0, 200, 7, 0, 0, + 36, 0, 0, 0, 216, 7, + 0, 0, 42, 0, 0, 0, + 232, 7, 0, 0, 39, 0, + 0, 0, 248, 7, 0, 0, + 41, 0, 0, 0, 8, 8, + 0, 0, 42, 0, 0, 0, + 24, 8, 0, 0, 47, 0, + 0, 0, 40, 8, 0, 0, + 47, 0, 0, 0, 56, 8, + 0, 0, 46, 0, 0, 0, + 72, 8, 0, 0, 46, 0, + 0, 0, 88, 8, 0, 0, + 46, 0, 0, 0, 100, 8, + 0, 0, 1, 1, 1, 0, + 120, 8, 0, 0, 63, 0, + 0, 0, 136, 8, 0, 0, + 14, 0, 2, 0, 152, 8, + 0, 0, 14, 0, 2, 0, + 168, 8, 0, 0, 14, 0, + 2, 0, 184, 8, 0, 0, + 1, 1, 1, 0, 200, 8, + 0, 0, 63, 0, 0, 0, + 216, 8, 0, 0, 63, 0, + 0, 0, 232, 8, 0, 0, + 63, 0, 0, 0, 248, 8, + 0, 0, 249, 0, 1, 0, + 8, 9, 0, 0, 249, 0, + 1, 0, 28, 9, 0, 0, + 0, 1, 1, 0, 40, 9, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 66, 97, 115, 105, + 99, 79, 110, 101, 76, 105, + 103, 104, 116, 84, 120, 86, + 99, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 144, 2, 0, 0, + 152, 2, 0, 0, 168, 2, + 0, 0, 152, 2, 0, 0, + 177, 2, 0, 0, 188, 2, + 0, 0, 204, 2, 0, 0, + 152, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 14, 0, + 1, 0, 4, 0, 216, 2, + 0, 0, 23, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 27, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 28, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 31, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 32, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 36, 0, 0, 0, + 10, 0, 11, 0, 255, 255, + 255, 255, 37, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 38, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, + 255, 255, 0, 0, 255, 255, + 255, 255, 100, 111, 116, 72, + 0, 171, 171, 171, 16, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 100, 111, + 116, 76, 0, 171, 171, 171, + 17, 0, 0, 0, 255, 255, + 0, 0, 255, 255, 255, 255, + 101, 121, 101, 86, 101, 99, + 116, 111, 114, 0, 171, 171, + 9, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 104, 97, 108, 102, 86, 101, + 99, 116, 111, 114, 115, 0, + 3, 0, 3, 0, 3, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 112, 111, + 115, 95, 119, 115, 0, 171, + 5, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 6, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 7, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 114, 101, 115, 117, 108, 116, + 0, 171, 144, 2, 0, 0, + 112, 3, 0, 0, 168, 2, + 0, 0, 112, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 6, 0, 1, 0, 2, 0, + 40, 4, 0, 0, 26, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 115, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 21, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 78, + 111, 114, 109, 97, 108, 0, + 67, 111, 108, 111, 114, 0, + 171, 171, 112, 4, 0, 0, + 152, 2, 0, 0, 121, 4, + 0, 0, 112, 3, 0, 0, + 177, 2, 0, 0, 188, 2, + 0, 0, 128, 4, 0, 0, + 152, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 13, 0, + 1, 0, 4, 0, 136, 4, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 237, 4, 0, 0, 152, 2, + 0, 0, 144, 2, 0, 0, + 152, 2, 0, 0, 168, 2, + 0, 0, 112, 3, 0, 0, + 244, 4, 0, 0, 0, 5, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 16, 5, 0, 0, + 33, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 34, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 35, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 15, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 19, 0, 0, 0, + 255, 255, 255, 255, 0, 0, + 255, 255, 72, 2, 0, 0, + 83, 2, 0, 0, 96, 2, + 0, 0, 1, 0, 0, 0, + 112, 2, 0, 0, 0, 0, + 0, 0, 124, 2, 0, 0, + 248, 2, 0, 0, 8, 0, + 0, 0, 8, 3, 0, 0, + 0, 0, 0, 0, 104, 3, + 0, 0, 112, 3, 0, 0, + 1, 0, 0, 0, 128, 3, + 0, 0, 0, 0, 0, 0, + 140, 3, 0, 0, 112, 3, + 0, 0, 1, 0, 0, 0, + 148, 3, 0, 0, 0, 0, + 0, 0, 160, 3, 0, 0, + 112, 3, 0, 0, 1, 0, + 0, 0, 168, 3, 0, 0, + 0, 0, 0, 0, 180, 3, + 0, 0, 112, 3, 0, 0, + 1, 0, 0, 0, 192, 3, + 0, 0, 0, 0, 0, 0, + 204, 3, 0, 0, 216, 3, + 0, 0, 1, 0, 0, 0, + 232, 3, 0, 0, 0, 0, + 0, 0, 244, 3, 0, 0, + 152, 2, 0, 0, 3, 0, + 0, 0, 252, 3, 0, 0, + 0, 0, 0, 0, 32, 4, + 0, 0, 56, 4, 0, 0, + 1, 0, 0, 0, 72, 4, + 0, 0, 0, 0, 0, 0, + 84, 4, 0, 0, 112, 3, + 0, 0, 1, 0, 0, 0, + 96, 4, 0, 0, 124, 2, + 0, 0, 108, 4, 0, 0, + 168, 4, 0, 0, 4, 0, + 0, 0, 184, 4, 0, 0, + 0, 0, 0, 0, 232, 4, + 0, 0, 48, 5, 0, 0, + 3, 0, 0, 0, 64, 5, + 0, 0, 0, 0, 0, 0, + 100, 5, 0, 0, 112, 3, + 0, 0, 1, 0, 0, 0, + 112, 5, 0, 0, 0, 0, + 0, 0, 124, 5, 0, 0, + 112, 3, 0, 0, 1, 0, + 0, 0, 132, 5, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 19, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightVc.inc index e43ec69b6c5ac21741b2f8c14216a9d32dca90f3..43a6cc9bde246d468fb0285dc125b24d6601f3a4 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicOneLightVc.inc @@ -44,42 +44,68 @@ // vs_2_0 def c19, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 r0.x, v0, c9 - dp4 r0.y, v0, c10 - dp4 r0.z, v0, c11 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8,9,10> + +#line 57 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c9 // ::pos_ws<0> + dp4 r0.y, v0, c10 // ::pos_ws<1> + dp4 r0.z, v0, c11 // ::pos_ws<2> add r0.xyz, -r0, c7 - nrm r1.xyz, r0 + nrm r1.xyz, r0 // ::eyeVector<0,1,2> + +#line 33 add r0.xyz, r1, -c4 - nrm r1.xyz, r0 + nrm r1.xyz, r0 // ::halfVectors<0,1,2> + +#line 59 dp3 r0.x, v1, c12 dp3 r0.y, v1, c13 dp3 r0.z, v1, c14 - nrm r2.xyz, r0 - dp3 r0.x, r1, r2 - dp3 r0.y, -c4, r2 + nrm r2.xyz, r0 // ::worldNormal<0,1,2> + +#line 37 + dp3 r0.x, r1, r2 // ::dotH<0> + dp3 r0.y, -c4, r2 // ::dotL<0> + +#line 42 max r0.x, r0.x, c19.x - sge r0.z, r0.y, c19.x - mul r0.xy, r0.zyzw, r0.xzzw - pow r1.x, r0.x, c3.w + +#line 39 + sge r0.z, r0.y, c19.x // ::zeroL<0> + mul r0.xy, r0.zyzw, r0.xzzw // ::diffuse<0> + pow r1.x, r0.x, c3.w // ::specular<0> + +#line 47 mul r0.xzw, r1.x, c6.xyyz - mul oT1.xyz, r0.xzww, c3 + mul oT1.xyz, r0.xzww, c3 // ::VSBasicOneLightVc<4,5,6> mul r0.xyz, r0.y, c5 - mov r1.xyz, c1 - mad r0.xyz, r0, r1, c2 - mul oT0.xyz, r0, v2 - dp4 oPos.z, v0, c17 + mov r1.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad r0.xyz, r0, r1, c2 // ::result<0,1,2> + +#line 228 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0.xyz, r0, v2 // ::VSBasicOneLightVc<0,1,2> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 oPos.z, v0, c17 // ::VSBasicOneLightVc<10> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c8 max r0.x, r0.x, c19.x - min oT1.w, r0.x, c19.y - mul oT0.w, v2.w, c1.w - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c18 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z + min oT1.w, r0.x, c19.y // ::VSBasicOneLightVc<7> + +#line 228 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0.w, v2.w, c1.w // ::VSBasicOneLightVc<3> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c15 // ::vout<0> + dp4 r0.y, v0, c16 // ::vout<1> + dp4 r0.z, v0, c18 // ::vout<3> + +#line 221 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicOneLightVc<8,9> + mov oPos.w, r0.z // ::VSBasicOneLightVc<11> // approximately 41 instruction slots used vs_4_0 @@ -134,17 +160,17 @@ ret const BYTE BasicEffect_VSBasicOneLightVc[] = { - 68, 88, 66, 67, 157, 229, - 30, 248, 170, 66, 14, 167, - 246, 135, 241, 9, 201, 147, - 148, 127, 1, 0, 0, 0, - 156, 8, 0, 0, 4, 0, + 68, 88, 66, 67, 7, 204, + 182, 223, 154, 182, 35, 146, + 95, 111, 61, 221, 117, 48, + 242, 64, 1, 0, 0, 0, + 32, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 240, 2, 0, 0, 188, 7, - 0, 0, 48, 8, 0, 0, - 65, 111, 110, 57, 184, 2, - 0, 0, 184, 2, 0, 0, - 0, 2, 254, 255, 72, 2, + 116, 9, 0, 0, 64, 14, + 0, 0, 180, 14, 0, 0, + 65, 111, 110, 57, 60, 9, + 0, 0, 60, 9, 0, 0, + 0, 2, 254, 255, 204, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -162,7 +188,285 @@ const BYTE BasicEffect_VSBasicOneLightVc[] = 0, 0, 0, 0, 19, 0, 7, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 160, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 84, 6, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 37, 0, 0, 0, + 16, 1, 0, 0, 14, 0, + 0, 0, 60, 5, 0, 0, + 108, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 66, + 97, 115, 105, 99, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 67, 111, 109, 109, + 111, 110, 46, 102, 120, 104, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 188, 0, + 0, 0, 0, 0, 255, 255, + 136, 6, 0, 0, 0, 0, + 255, 255, 160, 6, 0, 0, + 0, 0, 255, 255, 172, 6, + 0, 0, 0, 0, 255, 255, + 184, 6, 0, 0, 57, 0, + 0, 0, 196, 6, 0, 0, + 57, 0, 0, 0, 212, 6, + 0, 0, 57, 0, 0, 0, + 228, 6, 0, 0, 58, 0, + 0, 0, 244, 6, 0, 0, + 58, 0, 0, 0, 4, 7, + 0, 0, 33, 0, 0, 0, + 16, 7, 0, 0, 33, 0, + 0, 0, 32, 7, 0, 0, + 59, 0, 0, 0, 44, 7, + 0, 0, 59, 0, 0, 0, + 60, 7, 0, 0, 59, 0, + 0, 0, 76, 7, 0, 0, + 59, 0, 0, 0, 92, 7, + 0, 0, 37, 0, 0, 0, + 104, 7, 0, 0, 36, 0, + 0, 0, 120, 7, 0, 0, + 42, 0, 0, 0, 136, 7, + 0, 0, 39, 0, 0, 0, + 152, 7, 0, 0, 41, 0, + 0, 0, 168, 7, 0, 0, + 42, 0, 0, 0, 184, 7, + 0, 0, 47, 0, 0, 0, + 200, 7, 0, 0, 47, 0, + 0, 0, 216, 7, 0, 0, + 46, 0, 0, 0, 232, 7, + 0, 0, 46, 0, 0, 0, + 248, 7, 0, 0, 46, 0, + 0, 0, 4, 8, 0, 0, + 228, 0, 1, 0, 24, 8, + 0, 0, 63, 0, 0, 0, + 40, 8, 0, 0, 14, 0, + 2, 0, 56, 8, 0, 0, + 14, 0, 2, 0, 72, 8, + 0, 0, 14, 0, 2, 0, + 88, 8, 0, 0, 228, 0, + 1, 0, 104, 8, 0, 0, + 63, 0, 0, 0, 120, 8, + 0, 0, 63, 0, 0, 0, + 136, 8, 0, 0, 63, 0, + 0, 0, 152, 8, 0, 0, + 221, 0, 1, 0, 168, 8, + 0, 0, 221, 0, 1, 0, + 188, 8, 0, 0, 80, 97, + 114, 97, 109, 101, 116, 101, + 114, 115, 0, 68, 105, 102, + 102, 117, 115, 101, 67, 111, + 108, 111, 114, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 86, 83, 66, 97, + 115, 105, 99, 79, 110, 101, + 76, 105, 103, 104, 116, 86, + 99, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 80, 83, 0, + 126, 2, 0, 0, 136, 2, + 0, 0, 152, 2, 0, 0, + 136, 2, 0, 0, 161, 2, + 0, 0, 136, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 3, 0, + 172, 2, 0, 0, 22, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 26, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 27, 0, + 0, 0, 255, 255, 255, 255, + 10, 0, 255, 255, 30, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 31, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 35, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 36, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 11, 0, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 19, 0, + 0, 0, 255, 255, 0, 0, + 255, 255, 255, 255, 100, 111, + 116, 72, 0, 171, 171, 171, + 15, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 16, 0, 0, 0, + 255, 255, 0, 0, 255, 255, + 255, 255, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 4, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 5, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 6, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 114, 101, 115, 117, + 108, 116, 0, 171, 126, 2, + 0, 0, 48, 3, 0, 0, + 152, 2, 0, 0, 48, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 6, 0, 1, 0, + 2, 0, 232, 3, 0, 0, + 25, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 20, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 67, 111, 108, 111, + 114, 0, 171, 171, 48, 4, + 0, 0, 136, 2, 0, 0, + 57, 4, 0, 0, 48, 3, + 0, 0, 64, 4, 0, 0, + 136, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 11, 0, + 1, 0, 3, 0, 72, 4, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 9, 0, + 10, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 153, 4, 0, 0, 136, 2, + 0, 0, 126, 2, 0, 0, + 136, 2, 0, 0, 152, 2, + 0, 0, 48, 3, 0, 0, + 160, 4, 0, 0, 172, 4, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 188, 4, 0, 0, + 32, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 33, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 34, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 14, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 18, 0, 0, 0, + 255, 255, 255, 255, 0, 0, + 255, 255, 56, 2, 0, 0, + 67, 2, 0, 0, 80, 2, + 0, 0, 1, 0, 0, 0, + 96, 2, 0, 0, 0, 0, + 0, 0, 108, 2, 0, 0, + 196, 2, 0, 0, 7, 0, + 0, 0, 212, 2, 0, 0, + 0, 0, 0, 0, 40, 3, + 0, 0, 48, 3, 0, 0, + 1, 0, 0, 0, 64, 3, + 0, 0, 0, 0, 0, 0, + 76, 3, 0, 0, 48, 3, + 0, 0, 1, 0, 0, 0, + 84, 3, 0, 0, 0, 0, + 0, 0, 96, 3, 0, 0, + 48, 3, 0, 0, 1, 0, + 0, 0, 104, 3, 0, 0, + 0, 0, 0, 0, 116, 3, + 0, 0, 48, 3, 0, 0, + 1, 0, 0, 0, 128, 3, + 0, 0, 0, 0, 0, 0, + 140, 3, 0, 0, 152, 3, + 0, 0, 1, 0, 0, 0, + 168, 3, 0, 0, 0, 0, + 0, 0, 180, 3, 0, 0, + 136, 2, 0, 0, 3, 0, + 0, 0, 188, 3, 0, 0, + 0, 0, 0, 0, 224, 3, + 0, 0, 248, 3, 0, 0, + 1, 0, 0, 0, 8, 4, + 0, 0, 0, 0, 0, 0, + 20, 4, 0, 0, 48, 3, + 0, 0, 1, 0, 0, 0, + 32, 4, 0, 0, 108, 2, + 0, 0, 44, 4, 0, 0, + 96, 4, 0, 0, 3, 0, + 0, 0, 112, 4, 0, 0, + 0, 0, 0, 0, 148, 4, + 0, 0, 220, 4, 0, 0, + 3, 0, 0, 0, 236, 4, + 0, 0, 0, 0, 0, 0, + 16, 5, 0, 0, 48, 3, + 0, 0, 1, 0, 0, 0, + 28, 5, 0, 0, 0, 0, + 0, 0, 40, 5, 0, 0, + 48, 3, 0, 0, 1, 0, + 0, 0, 48, 5, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 19, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLighting.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLighting.inc index a6f423f2ced9e903df91426c361ba8104d7e93d4..247876ef060b1bfa39aa84b286629e8c564dcdb7 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLighting.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLighting.inc @@ -41,28 +41,38 @@ // vs_2_0 def c13, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c11 - dp4 oT0.x, v0, c3 - dp4 oT0.y, v0, c4 - dp4 oT0.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 oPos.z, v0, c11 // ::VSBasicPixelLighting<13> + dp4 oT0.x, v0, c3 // ::VSBasicPixelLighting<0> + dp4 oT0.y, v0, c4 // ::VSBasicPixelLighting<1> + dp4 oT0.z, v0, c5 // ::VSBasicPixelLighting<2> dp3 r0.x, v1, c6 dp3 r0.y, v1, c7 dp3 r0.z, v1, c8 dp3 r0.w, r0, r0 rsq r0.w, r0.w - mul oT1.xyz, r0.w, r0 + mul oT1.xyz, r0.w, r0 // ::VSBasicPixelLighting<4,5,6> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c2 max r0.x, r0.x, c13.x - min oT0.w, r0.x, c13.y - dp4 r0.x, v0, c9 - dp4 r0.y, v0, c10 - dp4 r0.z, v0, c12 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z + min oT0.w, r0.x, c13.y // ::VSBasicPixelLighting<3> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c9 // ::vout<0> + dp4 r0.y, v0, c10 // ::vout<1> + dp4 r0.z, v0, c12 // ::vout<3> + +#line 264 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicPixelLighting<11,12> + mov oPos.w, r0.z // ::VSBasicPixelLighting<14> + +#line 271 mov r0.xy, c13 - mad oT2, c1.w, r0.xxxy, r0.yyyx + mad oT2, c1.w, r0.xxxy, r0.yyyx // ::VSBasicPixelLighting<7,8,9,10> // approximately 20 instruction slots used vs_4_0 @@ -96,17 +106,17 @@ ret const BYTE BasicEffect_VSBasicPixelLighting[] = { - 68, 88, 66, 67, 230, 104, - 5, 53, 228, 212, 38, 110, - 57, 156, 92, 76, 224, 255, - 252, 98, 1, 0, 0, 0, - 52, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 39, 177, + 182, 232, 221, 182, 217, 45, + 115, 127, 129, 125, 2, 196, + 138, 212, 1, 0, 0, 0, + 60, 9, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 248, 1, 0, 0, 84, 4, - 0, 0, 168, 4, 0, 0, - 65, 111, 110, 57, 192, 1, - 0, 0, 192, 1, 0, 0, - 0, 2, 254, 255, 116, 1, + 0, 6, 0, 0, 92, 8, + 0, 0, 176, 8, 0, 0, + 65, 111, 110, 57, 200, 5, + 0, 0, 200, 5, 0, 0, + 0, 2, 254, 255, 124, 5, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -118,7 +128,179 @@ const BYTE BasicEffect_VSBasicPixelLighting[] = 0, 0, 0, 0, 19, 0, 7, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 1, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 216, 3, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 23, 0, 0, 0, + 16, 1, 0, 0, 3, 0, + 0, 0, 156, 3, 0, 0, + 200, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 12, 4, 0, 0, 0, 0, + 255, 255, 36, 4, 0, 0, + 0, 0, 255, 255, 48, 4, + 0, 0, 85, 0, 0, 0, + 60, 4, 0, 0, 86, 0, + 0, 0, 76, 4, 0, 0, + 86, 0, 0, 0, 92, 4, + 0, 0, 86, 0, 0, 0, + 108, 4, 0, 0, 87, 0, + 0, 0, 124, 4, 0, 0, + 87, 0, 0, 0, 140, 4, + 0, 0, 87, 0, 0, 0, + 156, 4, 0, 0, 87, 0, + 0, 0, 172, 4, 0, 0, + 87, 0, 0, 0, 188, 4, + 0, 0, 87, 0, 0, 0, + 200, 4, 0, 0, 14, 0, + 1, 0, 216, 4, 0, 0, + 14, 0, 1, 0, 232, 4, + 0, 0, 14, 0, 1, 0, + 248, 4, 0, 0, 85, 0, + 0, 0, 8, 5, 0, 0, + 85, 0, 0, 0, 24, 5, + 0, 0, 85, 0, 0, 0, + 40, 5, 0, 0, 8, 1, + 2, 0, 56, 5, 0, 0, + 8, 1, 2, 0, 76, 5, + 0, 0, 15, 1, 2, 0, + 88, 5, 0, 0, 15, 1, + 2, 0, 100, 5, 0, 0, + 86, 83, 66, 97, 115, 105, + 99, 80, 105, 120, 101, 108, + 76, 105, 103, 104, 116, 105, + 110, 103, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 87, + 83, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 78, 111, 114, 109, 97, 108, + 87, 83, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 221, 1, 0, 0, 232, 1, + 0, 0, 248, 1, 0, 0, + 4, 2, 0, 0, 20, 2, + 0, 0, 232, 1, 0, 0, + 28, 2, 0, 0, 232, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 15, 0, 1, 0, + 4, 0, 40, 2, 0, 0, + 3, 0, 0, 0, 255, 255, + 255, 255, 13, 0, 255, 255, + 4, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 5, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 6, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 12, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 15, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 19, 0, 0, 0, 11, 0, + 12, 0, 255, 255, 255, 255, + 20, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 14, 0, + 22, 0, 0, 0, 7, 0, + 8, 0, 9, 0, 10, 0, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 200, 2, 0, 0, + 232, 1, 0, 0, 209, 2, + 0, 0, 4, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 7, 0, 1, 0, 2, 0, + 216, 2, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 80, 111, + 115, 95, 119, 115, 0, 78, + 111, 114, 109, 97, 108, 95, + 119, 115, 0, 70, 111, 103, + 70, 97, 99, 116, 111, 114, + 0, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 21, 3, 0, 0, 232, 1, + 0, 0, 28, 3, 0, 0, + 4, 2, 0, 0, 35, 3, + 0, 0, 4, 2, 0, 0, + 45, 3, 0, 0, 56, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 11, 0, 1, 0, + 4, 0, 72, 3, 0, 0, + 16, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 17, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 18, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 200, 1, + 0, 0, 72, 2, 0, 0, + 9, 0, 0, 0, 88, 2, + 0, 0, 200, 1, 0, 0, + 196, 2, 0, 0, 232, 2, + 0, 0, 2, 0, 0, 0, + 248, 2, 0, 0, 0, 0, + 0, 0, 16, 3, 0, 0, + 104, 3, 0, 0, 3, 0, + 0, 0, 120, 3, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 13, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTx.inc index 622f02d0a6e3ea291c5d6b8d260b855c28ebfefc..deb37ea8be43d88bd4bc071ee4571ff3ee0e770a 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTx.inc @@ -43,30 +43,40 @@ // vs_2_0 def c13, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c11 - dp4 oT1.x, v0, c3 - dp4 oT1.y, v0, c4 - dp4 oT1.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 oPos.z, v0, c11 // ::VSBasicPixelLightingTx<15> + dp4 oT1.x, v0, c3 // ::VSBasicPixelLightingTx<2> + dp4 oT1.y, v0, c4 // ::VSBasicPixelLightingTx<3> + dp4 oT1.z, v0, c5 // ::VSBasicPixelLightingTx<4> dp3 r0.x, v1, c6 dp3 r0.y, v1, c7 dp3 r0.z, v1, c8 dp3 r0.w, r0, r0 rsq r0.w, r0.w - mul oT2.xyz, r0.w, r0 + mul oT2.xyz, r0.w, r0 // ::VSBasicPixelLightingTx<6,7,8> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c2 max r0.x, r0.x, c13.x - min oT1.w, r0.x, c13.y - dp4 r0.x, v0, c9 - dp4 r0.y, v0, c10 - dp4 r0.z, v0, c12 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.xy, v2 + min oT1.w, r0.x, c13.y // ::VSBasicPixelLightingTx<5> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c9 // ::vout<0> + dp4 r0.y, v0, c10 // ::vout<1> + dp4 r0.z, v0, c12 // ::vout<3> + +#line 293 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicPixelLightingTx<13,14> + mov oPos.w, r0.z // ::VSBasicPixelLightingTx<16> + +#line 301 + mov oT0.xy, v2 // ::VSBasicPixelLightingTx<0,1> mov r0.xy, c13 - mad oT3, c1.w, r0.xxxy, r0.yyyx + mad oT3, c1.w, r0.xxxy, r0.yyyx // ::VSBasicPixelLightingTx<9,10,11,12> // approximately 21 instruction slots used vs_4_0 @@ -103,17 +113,17 @@ ret const BYTE BasicEffect_VSBasicPixelLightingTx[] = { - 68, 88, 66, 67, 204, 155, - 176, 218, 30, 165, 199, 151, - 192, 140, 191, 207, 203, 27, - 37, 64, 1, 0, 0, 0, - 176, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 9, 43, + 114, 249, 73, 170, 16, 32, + 157, 118, 165, 108, 81, 48, + 40, 188, 1, 0, 0, 0, + 12, 10, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 16, 2, 0, 0, 152, 4, - 0, 0, 12, 5, 0, 0, - 65, 111, 110, 57, 216, 1, - 0, 0, 216, 1, 0, 0, - 0, 2, 254, 255, 140, 1, + 108, 6, 0, 0, 244, 8, + 0, 0, 104, 9, 0, 0, + 65, 111, 110, 57, 52, 6, + 0, 0, 52, 6, 0, 0, + 0, 2, 254, 255, 232, 5, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -125,7 +135,193 @@ const BYTE BasicEffect_VSBasicPixelLightingTx[] = 0, 0, 0, 0, 19, 0, 7, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 22, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 44, 4, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 25, 0, 0, 0, + 16, 1, 0, 0, 3, 0, + 0, 0, 240, 3, 0, 0, + 216, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 96, 4, 0, 0, 0, 0, + 255, 255, 120, 4, 0, 0, + 0, 0, 255, 255, 132, 4, + 0, 0, 0, 0, 255, 255, + 144, 4, 0, 0, 85, 0, + 0, 0, 156, 4, 0, 0, + 86, 0, 0, 0, 172, 4, + 0, 0, 86, 0, 0, 0, + 188, 4, 0, 0, 86, 0, + 0, 0, 204, 4, 0, 0, + 87, 0, 0, 0, 220, 4, + 0, 0, 87, 0, 0, 0, + 236, 4, 0, 0, 87, 0, + 0, 0, 252, 4, 0, 0, + 87, 0, 0, 0, 12, 5, + 0, 0, 87, 0, 0, 0, + 28, 5, 0, 0, 87, 0, + 0, 0, 40, 5, 0, 0, + 14, 0, 1, 0, 56, 5, + 0, 0, 14, 0, 1, 0, + 72, 5, 0, 0, 14, 0, + 1, 0, 88, 5, 0, 0, + 85, 0, 0, 0, 104, 5, + 0, 0, 85, 0, 0, 0, + 120, 5, 0, 0, 85, 0, + 0, 0, 136, 5, 0, 0, + 37, 1, 2, 0, 152, 5, + 0, 0, 37, 1, 2, 0, + 172, 5, 0, 0, 45, 1, + 2, 0, 184, 5, 0, 0, + 44, 1, 2, 0, 196, 5, + 0, 0, 44, 1, 2, 0, + 208, 5, 0, 0, 86, 83, + 66, 97, 115, 105, 99, 80, + 105, 120, 101, 108, 76, 105, + 103, 104, 116, 105, 110, 103, + 84, 120, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 87, 83, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 78, 111, 114, 109, + 97, 108, 87, 83, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 239, 1, 0, 0, + 248, 1, 0, 0, 8, 2, + 0, 0, 20, 2, 0, 0, + 36, 2, 0, 0, 48, 2, + 0, 0, 64, 2, 0, 0, + 20, 2, 0, 0, 72, 2, + 0, 0, 20, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 17, 0, 1, 0, 5, 0, + 84, 2, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 15, 0, 255, 255, 5, 0, + 0, 0, 2, 0, 255, 255, + 255, 255, 255, 255, 6, 0, + 0, 0, 255, 255, 3, 0, + 255, 255, 255, 255, 7, 0, + 0, 0, 255, 255, 255, 255, + 4, 0, 255, 255, 13, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 255, 255, 16, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 5, 0, 20, 0, + 0, 0, 13, 0, 14, 0, + 255, 255, 255, 255, 21, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 16, 0, 22, 0, + 0, 0, 0, 0, 1, 0, + 255, 255, 255, 255, 24, 0, + 0, 0, 9, 0, 10, 0, + 11, 0, 12, 0, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 78, + 111, 114, 109, 97, 108, 0, + 8, 3, 0, 0, 20, 2, + 0, 0, 17, 3, 0, 0, + 48, 2, 0, 0, 239, 1, + 0, 0, 248, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 9, 0, 1, 0, 3, 0, + 24, 3, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 3, 0, + 0, 0, 7, 0, 8, 0, + 255, 255, 255, 255, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 80, 111, + 115, 95, 119, 115, 0, 78, + 111, 114, 109, 97, 108, 95, + 119, 115, 0, 70, 111, 103, + 70, 97, 99, 116, 111, 114, + 0, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 105, 3, 0, 0, 20, 2, + 0, 0, 112, 3, 0, 0, + 48, 2, 0, 0, 119, 3, + 0, 0, 48, 2, 0, 0, + 129, 3, 0, 0, 140, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 11, 0, 1, 0, + 4, 0, 156, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 18, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 19, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 216, 1, + 0, 0, 124, 2, 0, 0, + 10, 0, 0, 0, 140, 2, + 0, 0, 216, 1, 0, 0, + 4, 3, 0, 0, 48, 3, + 0, 0, 3, 0, 0, 0, + 64, 3, 0, 0, 0, 0, + 0, 0, 100, 3, 0, 0, + 188, 3, 0, 0, 3, 0, + 0, 0, 204, 3, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 13, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTxVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTxVc.inc index 8a07e4996cb403431de860154b13460a1e646900..8209f47c5cdd1b88707f504971f9ab1ffc65fd49 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTxVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingTxVc.inc @@ -44,31 +44,43 @@ // vs_2_0 def c13, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dp4 oPos.z, v0, c11 - dp4 oT1.x, v0, c3 - dp4 oT1.y, v0, c4 - dp4 oT1.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 oPos.z, v0, c11 // ::VSBasicPixelLightingTxVc<15> + dp4 oT1.x, v0, c3 // ::VSBasicPixelLightingTxVc<2> + dp4 oT1.y, v0, c4 // ::VSBasicPixelLightingTxVc<3> + dp4 oT1.z, v0, c5 // ::VSBasicPixelLightingTxVc<4> dp3 r0.x, v1, c6 dp3 r0.y, v1, c7 dp3 r0.z, v1, c8 dp3 r0.w, r0, r0 rsq r0.w, r0.w - mul oT2.xyz, r0.w, r0 + mul oT2.xyz, r0.w, r0 // ::VSBasicPixelLightingTxVc<6,7,8> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c2 max r0.x, r0.x, c13.x - min oT1.w, r0.x, c13.y - mul oT3.w, v3.w, c1.w - dp4 r0.x, v0, c9 - dp4 r0.y, v0, c10 - dp4 r0.z, v0, c12 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.xy, v2 - mov oT3.xyz, v3 + min oT1.w, r0.x, c13.y // ::VSBasicPixelLightingTxVc<5> + +#line 316 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT3.w, v3.w, c1.w // ::VSBasicPixelLightingTxVc<12> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c9 // ::vout<0> + dp4 r0.y, v0, c10 // ::vout<1> + dp4 r0.z, v0, c12 // ::vout<3> + +#line 308 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicPixelLightingTxVc<13,14> + mov oPos.w, r0.z // ::VSBasicPixelLightingTxVc<16> + +#line 317 + mov oT0.xy, v2 // ::VSBasicPixelLightingTxVc<0,1> + mov oT3.xyz, v3 // ::VSBasicPixelLightingTxVc<9,10,11> // approximately 21 instruction slots used vs_4_0 @@ -106,17 +118,17 @@ ret const BYTE BasicEffect_VSBasicPixelLightingTxVc[] = { - 68, 88, 66, 67, 65, 60, - 6, 224, 158, 7, 234, 93, - 193, 57, 237, 180, 6, 97, - 96, 230, 1, 0, 0, 0, - 224, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 222, 13, + 104, 235, 159, 170, 215, 223, + 249, 129, 108, 227, 207, 189, + 48, 89, 1, 0, 0, 0, + 112, 10, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 24, 2, 0, 0, 168, 4, - 0, 0, 60, 5, 0, 0, - 65, 111, 110, 57, 224, 1, - 0, 0, 224, 1, 0, 0, - 0, 2, 254, 255, 148, 1, + 168, 6, 0, 0, 56, 9, + 0, 0, 204, 9, 0, 0, + 65, 111, 110, 57, 112, 6, + 0, 0, 112, 6, 0, 0, + 0, 2, 254, 255, 36, 6, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -128,233 +140,428 @@ const BYTE BasicEffect_VSBasicPixelLightingTxVc[] = 0, 0, 0, 0, 19, 0, 7, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 13, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 35, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 96, 4, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 11, 0, - 228, 160, 9, 0, 0, 3, - 1, 0, 1, 224, 0, 0, - 228, 144, 3, 0, 228, 160, + 3, 0, 0, 0, 4, 1, + 0, 0, 26, 0, 0, 0, + 16, 1, 0, 0, 3, 0, + 0, 0, 36, 4, 0, 0, + 224, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 148, 4, 0, 0, 0, 0, + 255, 255, 172, 4, 0, 0, + 0, 0, 255, 255, 184, 4, + 0, 0, 0, 0, 255, 255, + 196, 4, 0, 0, 0, 0, + 255, 255, 208, 4, 0, 0, + 85, 0, 0, 0, 220, 4, + 0, 0, 86, 0, 0, 0, + 236, 4, 0, 0, 86, 0, + 0, 0, 252, 4, 0, 0, + 86, 0, 0, 0, 12, 5, + 0, 0, 87, 0, 0, 0, + 28, 5, 0, 0, 87, 0, + 0, 0, 44, 5, 0, 0, + 87, 0, 0, 0, 60, 5, + 0, 0, 87, 0, 0, 0, + 76, 5, 0, 0, 87, 0, + 0, 0, 92, 5, 0, 0, + 87, 0, 0, 0, 104, 5, + 0, 0, 14, 0, 1, 0, + 120, 5, 0, 0, 14, 0, + 1, 0, 136, 5, 0, 0, + 14, 0, 1, 0, 152, 5, + 0, 0, 60, 1, 2, 0, + 168, 5, 0, 0, 85, 0, + 0, 0, 184, 5, 0, 0, + 85, 0, 0, 0, 200, 5, + 0, 0, 85, 0, 0, 0, + 216, 5, 0, 0, 52, 1, + 2, 0, 232, 5, 0, 0, + 52, 1, 2, 0, 252, 5, + 0, 0, 61, 1, 2, 0, + 8, 6, 0, 0, 59, 1, + 2, 0, 20, 6, 0, 0, + 86, 83, 66, 97, 115, 105, + 99, 80, 105, 120, 101, 108, + 76, 105, 103, 104, 116, 105, + 110, 103, 84, 120, 86, 99, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 87, 83, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 78, 111, 114, 109, + 97, 108, 87, 83, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 249, 1, 0, 0, + 4, 2, 0, 0, 20, 2, + 0, 0, 32, 2, 0, 0, + 48, 2, 0, 0, 60, 2, + 0, 0, 76, 2, 0, 0, + 32, 2, 0, 0, 84, 2, + 0, 0, 32, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 17, 0, 1, 0, 5, 0, + 96, 2, 0, 0, 5, 0, + 0, 0, 255, 255, 255, 255, + 15, 0, 255, 255, 6, 0, + 0, 0, 2, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 0, 0, 255, 255, 3, 0, + 255, 255, 255, 255, 8, 0, + 0, 0, 255, 255, 255, 255, + 4, 0, 255, 255, 14, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 255, 255, 17, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 5, 0, 18, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 12, 0, 22, 0, + 0, 0, 13, 0, 14, 0, + 255, 255, 255, 255, 23, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 16, 0, 24, 0, + 0, 0, 0, 0, 1, 0, + 255, 255, 255, 255, 25, 0, + 0, 0, 9, 0, 10, 0, + 11, 0, 255, 255, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 78, + 111, 114, 109, 97, 108, 0, + 67, 111, 108, 111, 114, 0, + 171, 171, 32, 3, 0, 0, + 32, 2, 0, 0, 41, 3, + 0, 0, 60, 2, 0, 0, + 249, 1, 0, 0, 4, 2, + 0, 0, 48, 3, 0, 0, + 32, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 13, 0, + 1, 0, 4, 0, 56, 3, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 80, 111, 115, 95, + 119, 115, 0, 78, 111, 114, + 109, 97, 108, 95, 119, 115, + 0, 70, 111, 103, 70, 97, + 99, 116, 111, 114, 0, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 157, 3, + 0, 0, 32, 2, 0, 0, + 164, 3, 0, 0, 60, 2, + 0, 0, 171, 3, 0, 0, + 60, 2, 0, 0, 181, 3, + 0, 0, 192, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 11, 0, 1, 0, 4, 0, + 208, 3, 0, 0, 19, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 20, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 21, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 224, 1, 0, 0, + 136, 2, 0, 0, 11, 0, + 0, 0, 152, 2, 0, 0, + 224, 1, 0, 0, 28, 3, + 0, 0, 88, 3, 0, 0, + 4, 0, 0, 0, 104, 3, + 0, 0, 0, 0, 0, 0, + 152, 3, 0, 0, 240, 3, + 0, 0, 3, 0, 0, 0, + 0, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 13, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 3, 128, 3, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 11, 0, 228, 160, 9, 0, 0, 3, 1, 0, - 2, 224, 0, 0, 228, 144, - 4, 0, 228, 160, 9, 0, - 0, 3, 1, 0, 4, 224, - 0, 0, 228, 144, 5, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 144, 6, 0, 228, 160, + 1, 224, 0, 0, 228, 144, + 3, 0, 228, 160, 9, 0, + 0, 3, 1, 0, 2, 224, + 0, 0, 228, 144, 4, 0, + 228, 160, 9, 0, 0, 3, + 1, 0, 4, 224, 0, 0, + 228, 144, 5, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 2, 128, 1, 0, 228, 144, - 7, 0, 228, 160, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 8, 0, + 1, 128, 1, 0, 228, 144, + 6, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 7, 0, 228, 160, 8, 0, 0, 3, - 0, 0, 8, 128, 0, 0, - 228, 128, 0, 0, 228, 128, - 7, 0, 0, 2, 0, 0, - 8, 128, 0, 0, 255, 128, - 5, 0, 0, 3, 2, 0, - 7, 224, 0, 0, 255, 128, - 0, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 2, 0, - 228, 160, 11, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 0, 128, 13, 0, 0, 160, - 10, 0, 0, 3, 1, 0, - 8, 224, 0, 0, 0, 128, - 13, 0, 85, 160, 5, 0, - 0, 3, 3, 0, 8, 224, - 3, 0, 255, 144, 1, 0, - 255, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 1, 0, + 228, 144, 8, 0, 228, 160, + 8, 0, 0, 3, 0, 0, + 8, 128, 0, 0, 228, 128, + 0, 0, 228, 128, 7, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 128, 5, 0, + 0, 3, 2, 0, 7, 224, + 0, 0, 255, 128, 0, 0, + 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 9, 0, 228, 160, + 228, 144, 2, 0, 228, 160, + 11, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 0, 128, + 13, 0, 0, 160, 10, 0, + 0, 3, 1, 0, 8, 224, + 0, 0, 0, 128, 13, 0, + 85, 160, 5, 0, 0, 3, + 3, 0, 8, 224, 3, 0, + 255, 144, 1, 0, 255, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 10, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 12, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 3, 224, - 2, 0, 228, 144, 1, 0, - 0, 2, 3, 0, 7, 224, - 3, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 136, 2, 0, 0, 64, 0, - 1, 0, 162, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 3, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 4, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 17, 0, 0, 8, 18, 32, + 1, 128, 0, 0, 228, 144, + 9, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 10, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 12, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 3, 224, 2, 0, + 228, 144, 1, 0, 0, 2, + 3, 0, 7, 224, 3, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 136, 2, + 0, 0, 64, 0, 1, 0, + 162, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 26, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 114, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 3, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 1, 0, + 66, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 17, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 17, 32, 0, 8, 130, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, + 0, 0, 14, 0, 0, 0, + 16, 0, 0, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, + 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, + 20, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 16, 0, 0, 8, 66, 0, + 0, 0, 21, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 21, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 130, 32, + 56, 0, 0, 7, 114, 32, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 130, 32, 16, 0, + 3, 0, 0, 0, 58, 16, 16, 0, 3, 0, 0, 0, - 58, 16, 16, 0, 3, 0, - 0, 0, 58, 128, 32, 0, + 58, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 114, 32, 16, 0, 3, 0, - 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, + 54, 0, 0, 5, 114, 32, + 16, 0, 3, 0, 0, 0, + 70, 18, 16, 0, 3, 0, + 0, 0, 17, 0, 0, 8, + 18, 32, 16, 0, 4, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 22, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 4, 0, + 130, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, - 4, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 25, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 140, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 116, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 123, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 3, - 0, 0, 132, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 15, 15, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 78, 79, 82, 77, - 65, 76, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 67, 79, 76, 79, 82, 0, - 171, 171, 79, 83, 71, 78, - 156, 0, 0, 0, 5, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 140, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 3, 12, 0, 0, - 128, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 128, 0, 0, 0, 2, 0, + 0, 0, 7, 7, 0, 0, + 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 7, 8, 0, 0, - 137, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 0, 0, + 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 143, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 67, 79, + 76, 79, 82, 0, 171, 171, + 79, 83, 71, 78, 156, 0, + 0, 0, 5, 0, 0, 0, + 8, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 12, 0, 0, 128, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 0, 0, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 67, 79, 76, - 79, 82, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 128, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 7, 8, 0, 0, 137, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 15, 0, 0, 0, 143, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 67, 79, 76, 79, 82, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingVc.inc index 1ef54041b34d547bbf97de359bd110e38b80ae3d..b0af53ecd4f3c3313e308c50c93ea3e05a80fde1 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicPixelLightingVc.inc @@ -42,29 +42,41 @@ // vs_2_0 def c13, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c11 - dp4 oT0.x, v0, c3 - dp4 oT0.y, v0, c4 - dp4 oT0.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8,9,10> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 oPos.z, v0, c11 // ::VSBasicPixelLightingVc<13> + dp4 oT0.x, v0, c3 // ::VSBasicPixelLightingVc<0> + dp4 oT0.y, v0, c4 // ::VSBasicPixelLightingVc<1> + dp4 oT0.z, v0, c5 // ::VSBasicPixelLightingVc<2> dp3 r0.x, v1, c6 dp3 r0.y, v1, c7 dp3 r0.z, v1, c8 dp3 r0.w, r0, r0 rsq r0.w, r0.w - mul oT1.xyz, r0.w, r0 + mul oT1.xyz, r0.w, r0 // ::VSBasicPixelLightingVc<4,5,6> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c2 max r0.x, r0.x, c13.x - min oT0.w, r0.x, c13.y - mul oT2.w, v2.w, c1.w - dp4 r0.x, v0, c9 - dp4 r0.y, v0, c10 - dp4 r0.z, v0, c12 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT2.xyz, v2 + min oT0.w, r0.x, c13.y // ::VSBasicPixelLightingVc<3> + +#line 286 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT2.w, v2.w, c1.w // ::VSBasicPixelLightingVc<10> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c9 // ::vout<0> + dp4 r0.y, v0, c10 // ::vout<1> + dp4 r0.z, v0, c12 // ::vout<3> + +#line 278 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicPixelLightingVc<11,12> + mov oPos.w, r0.z // ::VSBasicPixelLightingVc<14> + +#line 285 + mov oT2.xyz, v2 // ::VSBasicPixelLightingVc<7,8,9> // approximately 20 instruction slots used vs_4_0 @@ -99,17 +111,17 @@ ret const BYTE BasicEffect_VSBasicPixelLightingVc[] = { - 68, 88, 66, 67, 0, 37, - 19, 114, 200, 71, 227, 13, - 38, 46, 161, 55, 143, 215, - 122, 186, 1, 0, 0, 0, - 100, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 21, 241, + 126, 7, 199, 62, 72, 9, + 249, 225, 57, 230, 105, 223, + 248, 207, 1, 0, 0, 0, + 160, 9, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 0, 2, 0, 0, 100, 4, - 0, 0, 216, 4, 0, 0, - 65, 111, 110, 57, 200, 1, - 0, 0, 200, 1, 0, 0, - 0, 2, 254, 255, 124, 1, + 60, 6, 0, 0, 160, 8, + 0, 0, 20, 9, 0, 0, + 65, 111, 110, 57, 4, 6, + 0, 0, 4, 6, 0, 0, + 0, 2, 254, 255, 184, 5, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -121,212 +133,393 @@ const BYTE BasicEffect_VSBasicPixelLightingVc[] = 0, 0, 0, 0, 19, 0, 7, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 13, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 14, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 11, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 224, 0, 0, - 228, 144, 3, 0, 228, 160, + 3, 0, 0, 0, 4, 1, + 0, 0, 24, 0, 0, 0, + 16, 1, 0, 0, 3, 0, + 0, 0, 208, 3, 0, 0, + 208, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 64, 4, 0, 0, 0, 0, + 255, 255, 88, 4, 0, 0, + 0, 0, 255, 255, 100, 4, + 0, 0, 0, 0, 255, 255, + 112, 4, 0, 0, 85, 0, + 0, 0, 124, 4, 0, 0, + 86, 0, 0, 0, 140, 4, + 0, 0, 86, 0, 0, 0, + 156, 4, 0, 0, 86, 0, + 0, 0, 172, 4, 0, 0, + 87, 0, 0, 0, 188, 4, + 0, 0, 87, 0, 0, 0, + 204, 4, 0, 0, 87, 0, + 0, 0, 220, 4, 0, 0, + 87, 0, 0, 0, 236, 4, + 0, 0, 87, 0, 0, 0, + 252, 4, 0, 0, 87, 0, + 0, 0, 8, 5, 0, 0, + 14, 0, 1, 0, 24, 5, + 0, 0, 14, 0, 1, 0, + 40, 5, 0, 0, 14, 0, + 1, 0, 56, 5, 0, 0, + 30, 1, 2, 0, 72, 5, + 0, 0, 85, 0, 0, 0, + 88, 5, 0, 0, 85, 0, + 0, 0, 104, 5, 0, 0, + 85, 0, 0, 0, 120, 5, + 0, 0, 22, 1, 2, 0, + 136, 5, 0, 0, 22, 1, + 2, 0, 156, 5, 0, 0, + 29, 1, 2, 0, 168, 5, + 0, 0, 86, 83, 66, 97, + 115, 105, 99, 80, 105, 120, + 101, 108, 76, 105, 103, 104, + 116, 105, 110, 103, 86, 99, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 87, 83, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 78, 111, 114, 109, 97, 108, + 87, 83, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 231, 1, 0, 0, 244, 1, + 0, 0, 4, 2, 0, 0, + 16, 2, 0, 0, 32, 2, + 0, 0, 244, 1, 0, 0, + 40, 2, 0, 0, 244, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 15, 0, 1, 0, + 4, 0, 52, 2, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 13, 0, 255, 255, + 5, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 6, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 7, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 13, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 16, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 17, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 10, 0, + 21, 0, 0, 0, 11, 0, + 12, 0, 255, 255, 255, 255, + 22, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 14, 0, + 23, 0, 0, 0, 7, 0, + 8, 0, 9, 0, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 67, 111, 108, 111, + 114, 0, 171, 171, 224, 2, + 0, 0, 244, 1, 0, 0, + 233, 2, 0, 0, 16, 2, + 0, 0, 240, 2, 0, 0, + 244, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 11, 0, + 1, 0, 3, 0, 248, 2, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 9, 0, + 10, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 80, 111, 115, 95, + 119, 115, 0, 78, 111, 114, + 109, 97, 108, 95, 119, 115, + 0, 70, 111, 103, 70, 97, + 99, 116, 111, 114, 0, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 73, 3, + 0, 0, 244, 1, 0, 0, + 80, 3, 0, 0, 16, 2, + 0, 0, 87, 3, 0, 0, + 16, 2, 0, 0, 97, 3, + 0, 0, 108, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 11, 0, 1, 0, 4, 0, + 124, 3, 0, 0, 18, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 19, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 20, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 208, 1, 0, 0, + 84, 2, 0, 0, 10, 0, + 0, 0, 100, 2, 0, 0, + 208, 1, 0, 0, 220, 2, + 0, 0, 16, 3, 0, 0, + 3, 0, 0, 0, 32, 3, + 0, 0, 0, 0, 0, 0, + 68, 3, 0, 0, 156, 3, + 0, 0, 3, 0, 0, 0, + 172, 3, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 13, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 11, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 224, 0, 0, 228, 144, - 4, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 224, - 0, 0, 228, 144, 5, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 144, 6, 0, 228, 160, + 1, 224, 0, 0, 228, 144, + 3, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 224, + 0, 0, 228, 144, 4, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 224, 0, 0, + 228, 144, 5, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 2, 128, 1, 0, 228, 144, - 7, 0, 228, 160, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 8, 0, + 1, 128, 1, 0, 228, 144, + 6, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 7, 0, 228, 160, 8, 0, 0, 3, - 0, 0, 8, 128, 0, 0, - 228, 128, 0, 0, 228, 128, - 7, 0, 0, 2, 0, 0, - 8, 128, 0, 0, 255, 128, - 5, 0, 0, 3, 1, 0, - 7, 224, 0, 0, 255, 128, - 0, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 2, 0, - 228, 160, 11, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 0, 128, 13, 0, 0, 160, - 10, 0, 0, 3, 0, 0, - 8, 224, 0, 0, 0, 128, - 13, 0, 85, 160, 5, 0, - 0, 3, 2, 0, 8, 224, - 2, 0, 255, 144, 1, 0, - 255, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 1, 0, + 228, 144, 8, 0, 228, 160, + 8, 0, 0, 3, 0, 0, + 8, 128, 0, 0, 228, 128, + 0, 0, 228, 128, 7, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 128, 5, 0, + 0, 3, 1, 0, 7, 224, + 0, 0, 255, 128, 0, 0, + 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 9, 0, 228, 160, + 228, 144, 2, 0, 228, 160, + 11, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 0, 128, + 13, 0, 0, 160, 10, 0, + 0, 3, 0, 0, 8, 224, + 0, 0, 0, 128, 13, 0, + 85, 160, 5, 0, 0, 3, + 2, 0, 8, 224, 2, 0, + 255, 144, 1, 0, 255, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 10, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 12, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 2, 0, 7, 224, - 2, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 92, 2, 0, 0, 64, 0, - 1, 0, 151, 0, 0, 0, - 89, 0, 0, 4, 70, 142, + 1, 128, 0, 0, 228, 144, + 9, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 10, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 12, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 2, 0, 7, 224, 2, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 92, 2, + 0, 0, 64, 0, 1, 0, + 151, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 26, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 114, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 2, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 17, 0, 0, 8, + 18, 32, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, + 15, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 16, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 17, 32, - 0, 8, 130, 32, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 16, 0, 0, 8, 18, 0, + 14, 0, 0, 0, 16, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 19, 0, 0, 0, + 16, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 20, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 21, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 21, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 32, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, - 0, 8, 130, 32, 16, 0, - 2, 0, 0, 0, 58, 16, - 16, 0, 2, 0, 0, 0, - 58, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 114, 32, + 0, 7, 114, 32, 16, 0, + 1, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 130, 32, 16, 0, 2, 0, + 0, 0, 58, 16, 16, 0, + 2, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 2, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 2, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 23, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 24, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 108, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 25, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 108, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 7, 7, 0, 0, 99, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 67, + 79, 76, 79, 82, 0, 171, + 171, 171, 79, 83, 71, 78, + 132, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 92, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 99, 0, 0, 0, 0, 0, + 0, 0, 7, 8, 0, 0, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 67, 79, 76, 79, 82, - 0, 171, 171, 171, 79, 83, - 71, 78, 132, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 104, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 8, - 0, 0, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 0, - 0, 0, 119, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 15, 0, - 0, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 67, - 79, 76, 79, 82, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 171 + 0, 0, 15, 0, 0, 0, + 119, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 67, 79, 76, + 79, 82, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTx.inc index 39bdcde8ad15eb8dbd747e9999151bc31caf9cb5..4b9833d782bd5448e24b64b99ca58b5d1f32f36c 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTx.inc @@ -41,20 +41,32 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSBasicTx<12> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xyz, c7.x - mov oT2.xy, v1 + min oT1.w, r0.x, c7.y // ::VSBasicTx<7> + +#line 43 + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 96 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicTx<10,11> + mov oPos.w, r0.z // ::VSBasicTx<13> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSBasicTx<0,1,2,3> + mov oT1.xyz, c7.x // ::VSBasicTx<4,5,6> + +#line 103 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mov oT2.xy, v1 // ::VSBasicTx<8,9> // approximately 12 instruction slots used vs_4_0 @@ -79,17 +91,17 @@ ret const BYTE BasicEffect_VSBasicTx[] = { - 68, 88, 66, 67, 160, 62, - 87, 247, 158, 198, 70, 98, - 102, 170, 42, 202, 103, 175, - 31, 164, 1, 0, 0, 0, - 176, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 228, 129, + 100, 178, 242, 10, 146, 13, + 176, 148, 149, 179, 151, 217, + 176, 132, 1, 0, 0, 0, + 4, 7, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 112, 1, 0, 0, 204, 2, - 0, 0, 36, 3, 0, 0, - 65, 111, 110, 57, 56, 1, - 0, 0, 56, 1, 0, 0, - 0, 2, 254, 255, 236, 0, + 196, 4, 0, 0, 32, 6, + 0, 0, 120, 6, 0, 0, + 65, 111, 110, 57, 140, 4, + 0, 0, 140, 4, 0, 0, + 0, 2, 254, 255, 64, 4, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -101,7 +113,149 @@ const BYTE BasicEffect_VSBasicTx[] = 0, 0, 0, 0, 22, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 212, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 36, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 15, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 232, 2, 0, 0, + 60, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 88, 3, 0, 0, + 0, 0, 255, 255, 112, 3, + 0, 0, 0, 0, 255, 255, + 124, 3, 0, 0, 43, 0, + 0, 0, 136, 3, 0, 0, + 14, 0, 0, 0, 152, 3, + 0, 0, 14, 0, 0, 0, + 168, 3, 0, 0, 14, 0, + 0, 0, 184, 3, 0, 0, + 43, 0, 0, 0, 200, 3, + 0, 0, 43, 0, 0, 0, + 216, 3, 0, 0, 43, 0, + 0, 0, 232, 3, 0, 0, + 96, 0, 1, 0, 248, 3, + 0, 0, 96, 0, 1, 0, + 12, 4, 0, 0, 44, 0, + 0, 0, 24, 4, 0, 0, + 45, 0, 0, 0, 36, 4, + 0, 0, 103, 0, 1, 0, + 48, 4, 0, 0, 86, 83, + 66, 97, 115, 105, 99, 84, + 120, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 70, 1, + 0, 0, 80, 1, 0, 0, + 96, 1, 0, 0, 80, 1, + 0, 0, 105, 1, 0, 0, + 116, 1, 0, 0, 132, 1, + 0, 0, 80, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 14, 0, 1, 0, 4, 0, + 144, 1, 0, 0, 3, 0, + 0, 0, 255, 255, 255, 255, + 12, 0, 255, 255, 6, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 10, 0, + 0, 0, 10, 0, 11, 0, + 255, 255, 255, 255, 11, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 13, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 14, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 171, + 171, 171, 24, 2, 0, 0, + 80, 1, 0, 0, 105, 1, + 0, 0, 116, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 6, 0, 1, 0, 2, 0, + 36, 2, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 97, 2, 0, 0, 80, 1, + 0, 0, 70, 1, 0, 0, + 80, 1, 0, 0, 96, 1, + 0, 0, 104, 2, 0, 0, + 120, 2, 0, 0, 132, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 148, 2, 0, 0, + 7, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 8, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 9, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 60, 1, + 0, 0, 176, 1, 0, 0, + 7, 0, 0, 0, 192, 1, + 0, 0, 60, 1, 0, 0, + 20, 2, 0, 0, 52, 2, + 0, 0, 2, 0, 0, 0, + 68, 2, 0, 0, 0, 0, + 0, 0, 92, 2, 0, 0, + 180, 2, 0, 0, 3, 0, + 0, 0, 196, 2, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 7, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxNoFog.inc index 553076ecc55bbc0d3abfddbd2f2f8935421259ef..f26596b81ce39554d99fd95dac3ac96629b20683 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxNoFog.inc @@ -38,16 +38,24 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c4 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xy, v1 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSBasicTxNoFog<8> + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 110 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicTxNoFog<6,7> + mov oPos.w, r0.z // ::VSBasicTxNoFog<9> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSBasicTxNoFog<0,1,2,3> + +#line 117 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mov oT1.xy, v1 // ::VSBasicTxNoFog<4,5> // approximately 8 instruction slots used vs_4_0 @@ -69,17 +77,17 @@ ret const BYTE BasicEffect_VSBasicTxNoFog[] = { - 68, 88, 66, 67, 221, 167, - 150, 144, 89, 19, 203, 62, - 35, 20, 208, 187, 193, 120, - 188, 253, 1, 0, 0, 0, - 236, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 148, 90, + 127, 101, 25, 225, 99, 199, + 163, 239, 33, 209, 36, 12, + 134, 83, 1, 0, 0, 0, + 0, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 16, 1, 0, 0, 32, 2, - 0, 0, 120, 2, 0, 0, - 65, 111, 110, 57, 216, 0, - 0, 0, 216, 0, 0, 0, - 0, 2, 254, 255, 152, 0, + 36, 4, 0, 0, 52, 5, + 0, 0, 140, 5, 0, 0, + 65, 111, 110, 57, 236, 3, + 0, 0, 236, 3, 0, 0, + 0, 2, 254, 255, 172, 3, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -89,109 +97,240 @@ const BYTE BasicEffect_VSBasicTxNoFog[] = 0, 0, 0, 0, 22, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 4, 0, + 0, 2, 254, 255, 254, 255, + 196, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 228, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 10, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 168, 2, 0, 0, + 20, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 24, 3, 0, 0, + 0, 0, 255, 255, 36, 3, + 0, 0, 43, 0, 0, 0, + 48, 3, 0, 0, 43, 0, + 0, 0, 64, 3, 0, 0, + 43, 0, 0, 0, 80, 3, + 0, 0, 43, 0, 0, 0, + 96, 3, 0, 0, 110, 0, + 1, 0, 112, 3, 0, 0, + 110, 0, 1, 0, 132, 3, + 0, 0, 44, 0, 0, 0, + 144, 3, 0, 0, 117, 0, + 1, 0, 156, 3, 0, 0, + 86, 83, 66, 97, 115, 105, + 99, 84, 120, 78, 111, 70, + 111, 103, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 35, 1, 0, 0, + 44, 1, 0, 0, 60, 1, + 0, 0, 72, 1, 0, 0, + 88, 1, 0, 0, 44, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 10, 0, 1, 0, + 3, 0, 100, 1, 0, 0, + 2, 0, 0, 0, 255, 255, + 255, 255, 8, 0, 255, 255, + 6, 0, 0, 0, 6, 0, + 7, 0, 255, 255, 255, 255, + 7, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 9, 0, + 8, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 9, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171, 171, 171, 204, 1, + 0, 0, 44, 1, 0, 0, + 60, 1, 0, 0, 72, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 6, 0, 1, 0, + 2, 0, 216, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 21, 2, 0, 0, + 44, 1, 0, 0, 35, 1, + 0, 0, 44, 1, 0, 0, + 28, 2, 0, 0, 40, 2, + 0, 0, 56, 2, 0, 0, + 68, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 84, 2, + 0, 0, 3, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 4, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 5, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 20, 1, 0, 0, 124, 1, + 0, 0, 5, 0, 0, 0, + 140, 1, 0, 0, 20, 1, + 0, 0, 200, 1, 0, 0, + 232, 1, 0, 0, 2, 0, + 0, 0, 248, 1, 0, 0, + 0, 0, 0, 0, 16, 2, + 0, 0, 116, 2, 0, 0, + 3, 0, 0, 0, 132, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 4, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 2, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, + 0, 0, 2, 128, 0, 0, + 228, 144, 3, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 5, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 1, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 3, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 8, 1, 0, 0, 64, 0, - 1, 0, 66, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 50, 32, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, - 2, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, + 4, 128, 0, 0, 228, 144, + 5, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 15, 224, 1, 0, 228, 160, + 1, 0, 0, 2, 1, 0, + 3, 224, 1, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 8, 1, 0, 0, + 64, 0, 1, 0, 66, 0, + 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, 0, 0, - 0, 0, 22, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 26, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 1, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 17, 0, 0, 8, 18, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 2, 0, + 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, + 23, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 25, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 68, 0, 0, 0, + 0, 0, 24, 0, 0, 0, + 17, 0, 0, 8, 130, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 25, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 79, 83, 71, 78, - 108, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 86, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 95, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 3, 3, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 171, 171, 79, 83, + 71, 78, 108, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 12, + 0, 0, 95, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 15, 0, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVc.inc index 3687a4a39a733dfa01f3d7ea2afdecd5d1a5478a..3bd014fe28892fc2768906b84440f15b97b39dae 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVc.inc @@ -42,21 +42,35 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7,8,9> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSBasicTxVc<12> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - mul oT0, v2, c1 - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xyz, c7.x - mov oT2.xy, v1 + min oT1.w, r0.x, c7.y // ::VSBasicTxVc<7> + +#line 132 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0, v2, c1 // ::VSBasicTxVc<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 124 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicTxVc<10,11> + mov oPos.w, r0.z // ::VSBasicTxVc<13> + +#line 45 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT1.xyz, c7.x // ::VSBasicTxVc<4,5,6> + +#line 131 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mov oT2.xy, v1 // ::VSBasicTxVc<8,9> // approximately 12 instruction slots used vs_4_0 @@ -82,17 +96,17 @@ ret const BYTE BasicEffect_VSBasicTxVc[] = { - 68, 88, 66, 67, 163, 240, - 73, 82, 1, 64, 234, 192, - 176, 202, 185, 166, 255, 149, - 255, 7, 1, 0, 0, 0, - 240, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 109, 189, + 219, 132, 177, 108, 140, 212, + 39, 208, 246, 167, 198, 130, + 87, 85, 1, 0, 0, 0, + 100, 7, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 128, 1, 0, 0, 240, 2, - 0, 0, 100, 3, 0, 0, - 65, 111, 110, 57, 72, 1, - 0, 0, 72, 1, 0, 0, - 0, 2, 254, 255, 252, 0, + 244, 4, 0, 0, 100, 6, + 0, 0, 216, 6, 0, 0, + 65, 111, 110, 57, 188, 4, + 0, 0, 188, 4, 0, 0, + 0, 2, 254, 255, 112, 4, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -104,150 +118,298 @@ const BYTE BasicEffect_VSBasicTxVc[] = 0, 0, 0, 0, 22, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 7, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 220, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 68, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 16, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 8, 3, 0, 0, + 68, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 120, 3, 0, 0, + 0, 0, 255, 255, 144, 3, + 0, 0, 0, 0, 255, 255, + 156, 3, 0, 0, 0, 0, + 255, 255, 168, 3, 0, 0, + 43, 0, 0, 0, 180, 3, + 0, 0, 14, 0, 0, 0, + 196, 3, 0, 0, 14, 0, + 0, 0, 212, 3, 0, 0, + 14, 0, 0, 0, 228, 3, + 0, 0, 132, 0, 1, 0, + 244, 3, 0, 0, 43, 0, + 0, 0, 4, 4, 0, 0, + 43, 0, 0, 0, 20, 4, + 0, 0, 43, 0, 0, 0, + 36, 4, 0, 0, 124, 0, + 1, 0, 52, 4, 0, 0, + 124, 0, 1, 0, 72, 4, + 0, 0, 45, 0, 0, 0, + 84, 4, 0, 0, 131, 0, + 1, 0, 96, 4, 0, 0, + 86, 83, 66, 97, 115, 105, + 99, 84, 120, 86, 99, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 80, 1, 0, 0, 88, 1, + 0, 0, 104, 1, 0, 0, + 88, 1, 0, 0, 113, 1, + 0, 0, 124, 1, 0, 0, + 140, 1, 0, 0, 88, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 14, 0, 1, 0, + 4, 0, 152, 1, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 12, 0, 255, 255, + 7, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 8, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 12, 0, 0, 0, 10, 0, + 11, 0, 255, 255, 255, 255, + 13, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 13, 0, + 14, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 15, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 67, 111, 108, 111, 114, + 0, 171, 32, 2, 0, 0, + 88, 1, 0, 0, 113, 1, + 0, 0, 124, 1, 0, 0, + 41, 2, 0, 0, 88, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 10, 0, 1, 0, + 3, 0, 48, 2, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 3, 0, 0, 0, 6, 0, + 7, 0, 8, 0, 9, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 129, 2, 0, 0, + 88, 1, 0, 0, 80, 1, + 0, 0, 88, 1, 0, 0, + 104, 1, 0, 0, 136, 2, + 0, 0, 152, 2, 0, 0, + 164, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 180, 2, + 0, 0, 9, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 10, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 11, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 68, 1, 0, 0, 184, 1, + 0, 0, 7, 0, 0, 0, + 200, 1, 0, 0, 68, 1, + 0, 0, 28, 2, 0, 0, + 72, 2, 0, 0, 3, 0, + 0, 0, 88, 2, 0, 0, + 0, 0, 0, 0, 124, 2, + 0, 0, 212, 2, 0, 0, + 3, 0, 0, 0, 228, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 7, 0, + 15, 160, 0, 0, 0, 0, + 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 5, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 5, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 2, 0, + 228, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 7, 0, 0, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 7, 0, 85, 160, 5, 0, + 0, 3, 0, 0, 15, 224, + 2, 0, 228, 144, 1, 0, 228, 160, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 7, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 7, 0, - 85, 160, 5, 0, 0, 3, - 0, 0, 15, 224, 2, 0, - 228, 144, 1, 0, 228, 160, + 228, 144, 3, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 4, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 6, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 1, 0, 7, 224, 7, 0, - 0, 160, 1, 0, 0, 2, - 2, 0, 3, 224, 1, 0, - 228, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 104, 1, - 0, 0, 64, 0, 1, 0, - 90, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 26, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, + 2, 128, 0, 0, 228, 144, + 4, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 6, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 1, 0, 7, 224, + 7, 0, 0, 160, 1, 0, + 0, 2, 2, 0, 3, 224, + 1, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 104, 1, 0, 0, 64, 0, + 1, 0, 90, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 8, 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, + 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 8, 114, 32, + 16, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 2, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 3, 0, + 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 108, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 67, 79, 76, - 79, 82, 0, 171, 79, 83, - 71, 78, 132, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, + 24, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 25, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 108, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 104, 0, 0, 0, - 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 110, 0, 0, 0, + 1, 0, 0, 0, 3, 3, + 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 119, 0, 0, 0, - 0, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 15, 15, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 67, + 79, 76, 79, 82, 0, 171, + 79, 83, 71, 78, 132, 0, + 0, 0, 4, 0, 0, 0, + 8, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 104, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 110, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 12, 0, 0, 119, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 15, 0, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 171 + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVcNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVcNoFog.inc index 70eef7aee6fe776eaf8eb6af51fdce68b5d54eda..dba8cae340064540c988614b742a3909f3726380 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVcNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicTxVcNoFog.inc @@ -39,17 +39,27 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c4 - mul oT0, v2, c1 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xy, v1 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7,8,9> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSBasicTxVcNoFog<8> + +#line 147 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0, v2, c1 // ::VSBasicTxVcNoFog<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 139 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicTxVcNoFog<6,7> + mov oPos.w, r0.z // ::VSBasicTxVcNoFog<9> + +#line 146 + mov oT1.xy, v1 // ::VSBasicTxVcNoFog<4,5> // approximately 8 instruction slots used vs_4_0 @@ -72,17 +82,17 @@ ret const BYTE BasicEffect_VSBasicTxVcNoFog[] = { - 68, 88, 66, 67, 117, 119, - 253, 103, 213, 37, 15, 215, - 73, 141, 241, 41, 247, 61, - 238, 21, 1, 0, 0, 0, - 44, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 112, 14, + 119, 224, 77, 52, 152, 85, + 165, 175, 51, 107, 77, 138, + 61, 103, 1, 0, 0, 0, + 100, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 32, 1, 0, 0, 68, 2, - 0, 0, 184, 2, 0, 0, - 65, 111, 110, 57, 232, 0, - 0, 0, 232, 0, 0, 0, - 0, 2, 254, 255, 168, 0, + 88, 4, 0, 0, 124, 5, + 0, 0, 240, 5, 0, 0, + 65, 111, 110, 57, 32, 4, + 0, 0, 32, 4, 0, 0, + 0, 2, 254, 255, 224, 3, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -92,120 +102,257 @@ const BYTE BasicEffect_VSBasicTxVcNoFog[] = 0, 0, 0, 0, 22, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 4, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 224, 2, 0, - 228, 144, 1, 0, 228, 160, + 0, 2, 254, 255, 254, 255, + 205, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 8, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 11, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 204, 2, 0, 0, + 28, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 60, 3, 0, 0, + 0, 0, 255, 255, 72, 3, + 0, 0, 0, 0, 255, 255, + 84, 3, 0, 0, 43, 0, + 0, 0, 96, 3, 0, 0, + 147, 0, 1, 0, 112, 3, + 0, 0, 43, 0, 0, 0, + 128, 3, 0, 0, 43, 0, + 0, 0, 144, 3, 0, 0, + 43, 0, 0, 0, 160, 3, + 0, 0, 139, 0, 1, 0, + 176, 3, 0, 0, 139, 0, + 1, 0, 196, 3, 0, 0, + 146, 0, 1, 0, 208, 3, + 0, 0, 86, 83, 66, 97, + 115, 105, 99, 84, 120, 86, + 99, 78, 111, 70, 111, 103, + 0, 68, 105, 102, 102, 117, + 115, 101, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 45, 1, 0, 0, + 56, 1, 0, 0, 72, 1, + 0, 0, 84, 1, 0, 0, + 100, 1, 0, 0, 56, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 10, 0, 1, 0, + 3, 0, 112, 1, 0, 0, + 3, 0, 0, 0, 255, 255, + 255, 255, 8, 0, 255, 255, + 4, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 8, 0, 0, 0, 6, 0, + 7, 0, 255, 255, 255, 255, + 9, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 9, 0, + 10, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 67, 111, 108, 111, 114, + 0, 171, 216, 1, 0, 0, + 56, 1, 0, 0, 72, 1, + 0, 0, 84, 1, 0, 0, + 225, 1, 0, 0, 56, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 10, 0, 1, 0, + 3, 0, 232, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 255, 255, 255, 255, + 2, 0, 0, 0, 6, 0, + 7, 0, 8, 0, 9, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 57, 2, 0, 0, + 56, 1, 0, 0, 45, 1, + 0, 0, 56, 1, 0, 0, + 64, 2, 0, 0, 76, 2, + 0, 0, 92, 2, 0, 0, + 104, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 120, 2, + 0, 0, 5, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 6, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 7, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 28, 1, 0, 0, 136, 1, + 0, 0, 5, 0, 0, 0, + 152, 1, 0, 0, 28, 1, + 0, 0, 212, 1, 0, 0, + 0, 2, 0, 0, 3, 0, + 0, 0, 16, 2, 0, 0, + 0, 0, 0, 0, 52, 2, + 0, 0, 152, 2, 0, 0, + 3, 0, 0, 0, 168, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 3, 0, + 4, 192, 0, 0, 228, 144, + 4, 0, 228, 160, 5, 0, + 0, 3, 0, 0, 15, 224, + 2, 0, 228, 144, 1, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 5, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 1, 0, 3, 224, 1, 0, - 228, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 28, 1, - 0, 0, 64, 0, 1, 0, - 71, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 26, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 228, 144, 2, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 228, 144, + 3, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 5, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 1, 0, 3, 224, + 1, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 28, 1, 0, 0, 64, 0, + 1, 0, 71, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 1, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 8, 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 1, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 50, 32, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, - 2, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 22, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 70, 30, 16, 0, + 2, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 17, 0, 0, 8, 18, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 2, 0, + 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, + 23, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 25, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 108, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 15, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 67, - 79, 76, 79, 82, 0, 171, - 79, 83, 71, 78, 108, 0, + 0, 0, 24, 0, 0, 0, + 17, 0, 0, 8, 130, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 25, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 108, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 86, 0, + 15, 15, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 3, 12, 0, 0, 95, 0, + 3, 3, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 171 + 0, 67, 79, 76, 79, 82, + 0, 171, 79, 83, 71, 78, + 108, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 12, 0, 0, + 95, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVc.inc index 1815e5d9e57ed6153ff9cc55b8f9399c72e67a54..f0802d448d46d6ab5e09cd43a65c1c420535b591 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVc.inc @@ -40,19 +40,31 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6,7> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSBasicVc<10> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - mul oT0, v1, c1 - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xyz, c7.x + min oT1.w, r0.x, c7.y // ::VSBasicVc<7> + +#line 75 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0, v1, c1 // ::VSBasicVc<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 68 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicVc<8,9> + mov oPos.w, r0.z // ::VSBasicVc<11> + +#line 45 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT1.xyz, c7.x // ::VSBasicVc<4,5,6> // approximately 11 instruction slots used vs_4_0 @@ -75,17 +87,17 @@ ret const BYTE BasicEffect_VSBasicVc[] = { - 68, 88, 66, 67, 10, 187, - 46, 163, 197, 75, 4, 52, - 117, 94, 32, 83, 139, 250, - 54, 33, 1, 0, 0, 0, - 108, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 158, 216, + 189, 127, 247, 201, 236, 51, + 146, 197, 0, 108, 49, 8, + 231, 40, 1, 0, 0, 0, + 140, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 104, 1, 0, 0, 172, 2, - 0, 0, 0, 3, 0, 0, - 65, 111, 110, 57, 48, 1, - 0, 0, 48, 1, 0, 0, - 0, 2, 254, 255, 228, 0, + 136, 4, 0, 0, 204, 5, + 0, 0, 32, 6, 0, 0, + 65, 111, 110, 57, 80, 4, + 0, 0, 80, 4, 0, 0, + 0, 2, 254, 255, 4, 4, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -97,128 +109,262 @@ const BYTE BasicEffect_VSBasicVc[] = 0, 0, 0, 0, 22, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 7, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 199, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 240, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 14, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 180, 2, 0, 0, + 52, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 36, 3, 0, 0, + 0, 0, 255, 255, 60, 3, + 0, 0, 0, 0, 255, 255, + 72, 3, 0, 0, 43, 0, + 0, 0, 84, 3, 0, 0, + 14, 0, 0, 0, 100, 3, + 0, 0, 14, 0, 0, 0, + 116, 3, 0, 0, 14, 0, + 0, 0, 132, 3, 0, 0, + 75, 0, 1, 0, 148, 3, + 0, 0, 43, 0, 0, 0, + 164, 3, 0, 0, 43, 0, + 0, 0, 180, 3, 0, 0, + 43, 0, 0, 0, 196, 3, + 0, 0, 68, 0, 1, 0, + 212, 3, 0, 0, 68, 0, + 1, 0, 232, 3, 0, 0, + 45, 0, 0, 0, 244, 3, + 0, 0, 86, 83, 66, 97, + 115, 105, 99, 86, 99, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 80, + 111, 115, 105, 116, 105, 111, + 110, 80, 83, 0, 62, 1, + 0, 0, 72, 1, 0, 0, + 88, 1, 0, 0, 72, 1, + 0, 0, 97, 1, 0, 0, + 72, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 3, 0, 108, 1, + 0, 0, 3, 0, 0, 0, + 255, 255, 255, 255, 10, 0, + 255, 255, 6, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 11, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 12, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 11, 0, 13, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 67, 111, 108, + 111, 114, 0, 171, 224, 1, + 0, 0, 72, 1, 0, 0, + 233, 1, 0, 0, 72, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 8, 0, 1, 0, + 2, 0, 240, 1, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 45, 2, 0, 0, + 72, 1, 0, 0, 62, 1, + 0, 0, 72, 1, 0, 0, + 88, 1, 0, 0, 52, 2, + 0, 0, 68, 2, 0, 0, + 80, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 96, 2, + 0, 0, 8, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 9, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 10, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 52, 1, 0, 0, 132, 1, + 0, 0, 6, 0, 0, 0, + 148, 1, 0, 0, 52, 1, + 0, 0, 220, 1, 0, 0, + 0, 2, 0, 0, 2, 0, + 0, 0, 16, 2, 0, 0, + 0, 0, 0, 0, 40, 2, + 0, 0, 128, 2, 0, 0, + 3, 0, 0, 0, 144, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 7, 0, + 15, 160, 0, 0, 0, 0, + 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 5, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 5, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 2, 0, + 228, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 7, 0, 0, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 7, 0, 85, 160, 5, 0, + 0, 3, 0, 0, 15, 224, + 1, 0, 228, 144, 1, 0, 228, 160, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 7, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 7, 0, - 85, 160, 5, 0, 0, 3, - 0, 0, 15, 224, 1, 0, - 228, 144, 1, 0, 228, 160, + 228, 144, 3, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 4, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 6, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 1, 0, 7, 224, 7, 0, - 0, 160, 255, 255, 0, 0, - 83, 72, 68, 82, 60, 1, - 0, 0, 64, 0, 1, 0, - 79, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 26, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, + 2, 128, 0, 0, 228, 144, + 4, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 6, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 1, 0, 7, 224, + 7, 0, 0, 160, 255, 255, + 0, 0, 83, 72, 68, 82, + 60, 1, 0, 0, 64, 0, + 1, 0, 79, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 8, 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, + 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 8, 114, 32, + 16, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 2, 0, + 18, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 17, 0, 0, 8, 130, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 25, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 76, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 24, 0, + 0, 0, 17, 0, 0, 8, + 130, 32, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 76, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 68, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 67, 79, - 76, 79, 82, 0, 171, 171, - 79, 83, 71, 78, 100, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 67, 79, 76, 79, 82, 0, + 171, 171, 79, 83, 71, 78, + 100, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 80, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 80, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 86, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 171, 171 + 3, 0, 0, 0, 2, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVcNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVcNoFog.inc index 9fd1c404612a3e8e3b3d31162a472f44e97d52a0..dfe64c9b925438a50a9939639d16125d99006c9d 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVcNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVcNoFog.inc @@ -37,15 +37,23 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dp4 oPos.z, v0, c4 - mul oT0, v1, c1 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6,7> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSBasicVcNoFog<6> + +#line 89 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0, v1, c1 // ::VSBasicVcNoFog<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 82 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicVcNoFog<4,5> + mov oPos.w, r0.z // ::VSBasicVcNoFog<7> // approximately 7 instruction slots used vs_4_0 @@ -65,17 +73,17 @@ ret const BYTE BasicEffect_VSBasicVcNoFog[] = { - 68, 88, 66, 67, 84, 0, - 235, 58, 0, 107, 122, 79, - 253, 27, 44, 43, 109, 188, - 148, 111, 1, 0, 0, 0, - 168, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 114, 65, + 2, 27, 167, 13, 188, 197, + 210, 128, 13, 198, 110, 181, + 26, 207, 1, 0, 0, 0, + 136, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 8, 1, 0, 0, 0, 2, - 0, 0, 84, 2, 0, 0, - 65, 111, 110, 57, 208, 0, - 0, 0, 208, 0, 0, 0, - 0, 2, 254, 255, 144, 0, + 232, 3, 0, 0, 224, 4, + 0, 0, 52, 5, 0, 0, + 65, 111, 110, 57, 176, 3, + 0, 0, 176, 3, 0, 0, + 0, 2, 254, 255, 112, 3, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -85,98 +93,220 @@ const BYTE BasicEffect_VSBasicVcNoFog[] = 0, 0, 0, 0, 22, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 4, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 224, 1, 0, - 228, 144, 1, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 3, 0, + 0, 2, 254, 255, 254, 255, + 183, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 176, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 9, 0, 0, 0, + 196, 0, 0, 0, 3, 0, + 0, 0, 116, 2, 0, 0, + 12, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 66, 97, 115, + 105, 99, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 111, 0, 0, 0, 0, 0, + 255, 255, 228, 2, 0, 0, + 0, 0, 255, 255, 240, 2, + 0, 0, 43, 0, 0, 0, + 252, 2, 0, 0, 89, 0, + 1, 0, 12, 3, 0, 0, + 43, 0, 0, 0, 28, 3, + 0, 0, 43, 0, 0, 0, + 44, 3, 0, 0, 43, 0, + 0, 0, 60, 3, 0, 0, + 82, 0, 1, 0, 76, 3, + 0, 0, 82, 0, 1, 0, + 96, 3, 0, 0, 86, 83, + 66, 97, 115, 105, 99, 86, + 99, 78, 111, 70, 111, 103, + 0, 68, 105, 102, 102, 117, + 115, 101, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 27, 1, 0, 0, + 36, 1, 0, 0, 52, 1, + 0, 0, 36, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 8, 0, 1, 0, 2, 0, + 64, 1, 0, 0, 2, 0, + 0, 0, 255, 255, 255, 255, + 6, 0, 255, 255, 3, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 7, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 8, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 67, + 111, 108, 111, 114, 0, 171, + 148, 1, 0, 0, 36, 1, + 0, 0, 157, 1, 0, 0, + 36, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 8, 0, + 1, 0, 2, 0, 164, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 225, 1, + 0, 0, 36, 1, 0, 0, + 27, 1, 0, 0, 36, 1, + 0, 0, 232, 1, 0, 0, + 244, 1, 0, 0, 4, 2, + 0, 0, 16, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 32, 2, 0, 0, 4, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 5, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 6, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 12, 1, 0, 0, + 80, 1, 0, 0, 4, 0, + 0, 0, 96, 1, 0, 0, + 12, 1, 0, 0, 144, 1, + 0, 0, 180, 1, 0, 0, + 2, 0, 0, 0, 196, 1, + 0, 0, 0, 0, 0, 0, + 220, 1, 0, 0, 64, 2, + 0, 0, 3, 0, 0, 0, + 80, 2, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 4, 0, 228, 160, + 5, 0, 0, 3, 0, 0, + 15, 224, 1, 0, 228, 144, + 1, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 2, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 5, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 240, 0, - 0, 0, 64, 0, 1, 0, - 60, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 26, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, + 0, 0, 2, 128, 0, 0, + 228, 144, 3, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 5, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 240, 0, 0, 0, + 64, 0, 1, 0, 60, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 26, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 1, 0, + 34, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 23, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 24, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 76, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 76, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 67, 79, + 76, 79, 82, 0, 171, 171, + 79, 83, 71, 78, 76, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 67, 79, 76, 79, 82, 0, - 171, 171, 79, 83, 71, 78, - 76, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 62, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 171, 171 + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLighting.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLighting.inc index 26e9db4316a60d8842f44d8ae22acabd33e1a72c..084bf7f6c04b50dd3c2ff402e60917c626e8bcd1 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLighting.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLighting.inc @@ -40,59 +40,95 @@ // vs_2_0 def c25, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r0.x, v1, c18 dp3 r0.y, v1, c19 dp3 r0.z, v1, c20 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - dp3 r0.y, -c5, r1 - dp3 r0.z, -c6, r1 - sge r2.xyz, r0, c25.x - mul r0.xyz, r0, r2 + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 + dp3 r0.x, -c4, r1 // ::dotL<0> + dp3 r0.y, -c5, r1 // ::dotL<1> + dp3 r0.z, -c6, r1 // ::dotL<2> + +#line 39 + sge r2.xyz, r0, c25.x // ::zeroL<0,1,2> + mul r0.xyz, r0, r2 // ::diffuse<0,1,2> + +#line 46 mul r3.xyz, r0.y, c8 mad r0.xyw, r0.x, c7.xyzz, r3.xyzz mad r0.xyz, r0.z, c9, r0.xyww - mov r3.xyz, c1 - mad oT0.xyz, r0, r3, c2 - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c17 + mov r3.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0, r3, c2 // ::VSBasicVertexLighting<0,1,2> + +#line 57 + dp4 r0.x, v0, c15 // ::pos_ws<0> + dp4 r0.y, v0, c16 // ::pos_ws<1> + dp4 r0.z, v0, c17 // ::pos_ws<2> add r0.xyz, -r0, c13 - nrm r3.xyz, r0 + nrm r3.xyz, r0 // ::eyeVector<0,1,2> + +#line 33 add r0.xyz, r3, -c4 - nrm r4.xyz, r0 - dp3 r0.x, r4, r1 + nrm r4.xyz, r0 // ::halfVectors<0,1,2> + +#line 37 + dp3 r0.x, r4, r1 // ::dotH<0> + +#line 33 add r4.xyz, r3, -c5 add r3.xyz, r3, -c6 - nrm r5.xyz, r3 - dp3 r0.z, r5, r1 - nrm r3.xyz, r4 - dp3 r0.y, r3, r1 + nrm r5.xyz, r3 // ::halfVectors<6,7,8> + +#line 37 + dp3 r0.z, r5, r1 // ::dotH<2> + +#line 33 + nrm r3.xyz, r4 // ::halfVectors<3,4,5> + +#line 37 + dp3 r0.y, r3, r1 // ::dotH<1> + +#line 42 max r0.xyz, r0, c25.x mul r0.xyz, r2, r0 log r1.x, r0.x log r1.y, r0.y log r1.z, r0.z mul r0.xyz, r1, c3.w - exp r0.x, r0.x - exp r0.y, r0.y - exp r0.z, r0.z + exp r0.x, r0.x // ::specular<0> + exp r0.y, r0.y // ::specular<1> + exp r0.z, r0.z // ::specular<2> + +#line 47 mul r1.xyz, r0.y, c11 mad r0.xyw, r0.x, c10.xyzz, r1.xyzz mad r0.xyz, r0.z, c12, r0.xyww - mul oT1.xyz, r0, c3 - dp4 oPos.z, v0, c23 + mul oT1.xyz, r0, c3 // ::VSBasicVertexLighting<4,5,6> + +#line 63 + dp4 oPos.z, v0, c23 // ::VSBasicVertexLighting<10> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c14 max r0.x, r0.x, c25.x - min oT1.w, r0.x, c25.y - dp4 r0.x, v0, c21 - dp4 r0.y, v0, c22 - dp4 r0.z, v0, c24 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c1.w + min oT1.w, r0.x, c25.y // ::VSBasicVertexLighting<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c21 // ::vout<0> + dp4 r0.y, v0, c22 // ::vout<1> + dp4 r0.z, v0, c24 // ::vout<3> + +#line 154 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicVertexLighting<8,9> + mov oPos.w, r0.z // ::VSBasicVertexLighting<11> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c1.w // ::VSBasicVertexLighting<3> // approximately 61 instruction slots used vs_4_0 @@ -161,17 +197,17 @@ ret const BYTE BasicEffect_VSBasicVertexLighting[] = { - 68, 88, 66, 67, 227, 79, - 10, 21, 150, 232, 101, 180, - 243, 182, 250, 185, 179, 99, - 49, 164, 1, 0, 0, 0, - 92, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 11, 169, + 156, 99, 25, 253, 36, 15, + 116, 176, 152, 41, 101, 109, + 158, 51, 1, 0, 0, 0, + 104, 18, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 204, 3, 0, 0, 156, 10, - 0, 0, 240, 10, 0, 0, - 65, 111, 110, 57, 148, 3, - 0, 0, 148, 3, 0, 0, - 0, 2, 254, 255, 72, 3, + 216, 10, 0, 0, 168, 17, + 0, 0, 252, 17, 0, 0, + 65, 111, 110, 57, 160, 10, + 0, 0, 160, 10, 0, 0, + 0, 2, 254, 255, 84, 10, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -183,467 +219,768 @@ const BYTE BasicEffect_VSBasicVertexLighting[] = 0, 0, 0, 0, 19, 0, 7, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 25, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 194, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 220, 6, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 8, 0, - 0, 3, 0, 0, 1, 128, - 1, 0, 228, 144, 18, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 19, 0, 228, 160, + 3, 0, 0, 0, 4, 1, + 0, 0, 54, 0, 0, 0, + 16, 1, 0, 0, 13, 0, + 0, 0, 216, 5, 0, 0, + 244, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 16, 7, 0, 0, 0, 0, + 255, 255, 40, 7, 0, 0, + 0, 0, 255, 255, 52, 7, + 0, 0, 59, 0, 0, 0, + 64, 7, 0, 0, 59, 0, + 0, 0, 80, 7, 0, 0, + 59, 0, 0, 0, 96, 7, + 0, 0, 59, 0, 0, 0, + 112, 7, 0, 0, 36, 0, + 0, 0, 124, 7, 0, 0, + 36, 0, 0, 0, 140, 7, + 0, 0, 36, 0, 0, 0, + 156, 7, 0, 0, 39, 0, + 0, 0, 172, 7, 0, 0, + 41, 0, 0, 0, 188, 7, + 0, 0, 46, 0, 0, 0, + 204, 7, 0, 0, 46, 0, + 0, 0, 220, 7, 0, 0, + 46, 0, 0, 0, 240, 7, + 0, 0, 46, 0, 0, 0, + 4, 8, 0, 0, 46, 0, + 0, 0, 16, 8, 0, 0, + 57, 0, 0, 0, 36, 8, + 0, 0, 57, 0, 0, 0, + 52, 8, 0, 0, 57, 0, + 0, 0, 68, 8, 0, 0, + 58, 0, 0, 0, 84, 8, + 0, 0, 58, 0, 0, 0, + 100, 8, 0, 0, 33, 0, + 0, 0, 112, 8, 0, 0, + 33, 0, 0, 0, 128, 8, + 0, 0, 37, 0, 0, 0, + 140, 8, 0, 0, 33, 0, + 0, 0, 156, 8, 0, 0, + 33, 0, 0, 0, 172, 8, + 0, 0, 33, 0, 0, 0, + 188, 8, 0, 0, 37, 0, + 0, 0, 200, 8, 0, 0, + 33, 0, 0, 0, 216, 8, + 0, 0, 37, 0, 0, 0, + 228, 8, 0, 0, 42, 0, + 0, 0, 244, 8, 0, 0, + 42, 0, 0, 0, 4, 9, + 0, 0, 42, 0, 0, 0, + 20, 9, 0, 0, 42, 0, + 0, 0, 32, 9, 0, 0, + 42, 0, 0, 0, 44, 9, + 0, 0, 42, 0, 0, 0, + 56, 9, 0, 0, 42, 0, + 0, 0, 72, 9, 0, 0, + 42, 0, 0, 0, 84, 9, + 0, 0, 42, 0, 0, 0, + 96, 9, 0, 0, 47, 0, + 0, 0, 108, 9, 0, 0, + 47, 0, 0, 0, 124, 9, + 0, 0, 47, 0, 0, 0, + 144, 9, 0, 0, 47, 0, + 0, 0, 164, 9, 0, 0, + 63, 0, 0, 0, 180, 9, + 0, 0, 14, 0, 1, 0, + 196, 9, 0, 0, 14, 0, + 1, 0, 212, 9, 0, 0, + 14, 0, 1, 0, 228, 9, + 0, 0, 63, 0, 0, 0, + 244, 9, 0, 0, 63, 0, + 0, 0, 4, 10, 0, 0, + 63, 0, 0, 0, 20, 10, + 0, 0, 154, 0, 2, 0, + 36, 10, 0, 0, 154, 0, + 2, 0, 56, 10, 0, 0, + 46, 0, 0, 0, 68, 10, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 66, 97, 115, 105, + 99, 86, 101, 114, 116, 101, + 120, 76, 105, 103, 104, 116, + 105, 110, 103, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 80, + 83, 0, 10, 3, 0, 0, + 20, 3, 0, 0, 36, 3, + 0, 0, 20, 3, 0, 0, + 45, 3, 0, 0, 20, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 3, 0, 56, 3, 0, 0, + 16, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 43, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 44, 0, 0, 0, 255, 255, + 255, 255, 10, 0, 255, 255, + 47, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 51, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 52, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 11, 0, + 53, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 100, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 100, 111, 116, 72, 0, 171, + 171, 171, 24, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 28, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 30, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 7, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 8, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 9, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 101, 121, + 101, 86, 101, 99, 116, 111, + 114, 0, 171, 171, 21, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 104, 97, + 108, 102, 86, 101, 99, 116, + 111, 114, 115, 0, 3, 0, + 3, 0, 3, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 27, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 29, 0, 0, 0, + 3, 0, 4, 0, 5, 0, + 255, 255, 112, 111, 115, 95, + 119, 115, 0, 171, 17, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 18, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 19, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 115, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 37, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 38, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 39, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 118, 105, + 110, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 78, + 111, 114, 109, 97, 108, 0, + 232, 4, 0, 0, 20, 3, + 0, 0, 241, 4, 0, 0, + 188, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 7, 0, + 1, 0, 2, 0, 248, 4, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 53, 5, 0, 0, 20, 3, + 0, 0, 10, 3, 0, 0, + 20, 3, 0, 0, 36, 3, + 0, 0, 188, 3, 0, 0, + 60, 5, 0, 0, 72, 5, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 88, 5, 0, 0, + 48, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 49, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 50, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 10, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 192, 2, 0, 0, + 203, 2, 0, 0, 216, 2, + 0, 0, 1, 0, 0, 0, + 232, 2, 0, 0, 0, 0, + 0, 0, 244, 2, 0, 0, + 80, 3, 0, 0, 7, 0, + 0, 0, 96, 3, 0, 0, + 0, 0, 0, 0, 180, 3, + 0, 0, 188, 3, 0, 0, + 1, 0, 0, 0, 204, 3, + 0, 0, 0, 0, 0, 0, + 216, 3, 0, 0, 188, 3, + 0, 0, 3, 0, 0, 0, + 224, 3, 0, 0, 0, 0, + 0, 0, 4, 4, 0, 0, + 188, 3, 0, 0, 3, 0, + 0, 0, 12, 4, 0, 0, + 0, 0, 0, 0, 48, 4, + 0, 0, 188, 3, 0, 0, + 1, 0, 0, 0, 60, 4, + 0, 0, 0, 0, 0, 0, + 72, 4, 0, 0, 84, 4, + 0, 0, 3, 0, 0, 0, + 100, 4, 0, 0, 0, 0, + 0, 0, 136, 4, 0, 0, + 20, 3, 0, 0, 3, 0, + 0, 0, 144, 4, 0, 0, + 0, 0, 0, 0, 180, 4, + 0, 0, 188, 3, 0, 0, + 3, 0, 0, 0, 192, 4, + 0, 0, 244, 2, 0, 0, + 228, 4, 0, 0, 8, 5, + 0, 0, 2, 0, 0, 0, + 24, 5, 0, 0, 0, 0, + 0, 0, 48, 5, 0, 0, + 120, 5, 0, 0, 3, 0, + 0, 0, 136, 5, 0, 0, + 0, 0, 0, 0, 172, 5, + 0, 0, 188, 3, 0, 0, + 1, 0, 0, 0, 184, 5, + 0, 0, 0, 0, 0, 0, + 196, 5, 0, 0, 188, 3, + 0, 0, 1, 0, 0, 0, + 204, 5, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 25, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 18, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 4, 128, 1, 0, 228, 144, - 20, 0, 228, 160, 36, 0, - 0, 2, 1, 0, 7, 128, - 0, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 1, 128, - 4, 0, 228, 161, 1, 0, + 2, 128, 1, 0, 228, 144, + 19, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 4, 128, + 1, 0, 228, 144, 20, 0, + 228, 160, 36, 0, 0, 2, + 1, 0, 7, 128, 0, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 5, 0, + 0, 0, 1, 128, 4, 0, 228, 161, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 4, 128, 6, 0, 228, 161, - 1, 0, 228, 128, 13, 0, - 0, 3, 2, 0, 7, 128, - 0, 0, 228, 128, 25, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 228, 128, - 5, 0, 0, 3, 3, 0, - 7, 128, 0, 0, 85, 128, - 8, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 11, 128, - 0, 0, 0, 128, 7, 0, - 164, 160, 3, 0, 164, 128, - 4, 0, 0, 4, 0, 0, - 7, 128, 0, 0, 170, 128, - 9, 0, 228, 160, 0, 0, - 244, 128, 1, 0, 0, 2, - 3, 0, 7, 128, 1, 0, + 2, 128, 5, 0, 228, 161, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 6, 0, 228, 161, 1, 0, + 228, 128, 13, 0, 0, 3, + 2, 0, 7, 128, 0, 0, + 228, 128, 25, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 2, 0, 228, 128, 5, 0, + 0, 3, 3, 0, 7, 128, + 0, 0, 85, 128, 8, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 7, 224, 0, 0, - 228, 128, 3, 0, 228, 128, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 15, 0, + 0, 0, 11, 128, 0, 0, + 0, 128, 7, 0, 164, 160, + 3, 0, 164, 128, 4, 0, + 0, 4, 0, 0, 7, 128, + 0, 0, 170, 128, 9, 0, + 228, 160, 0, 0, 244, 128, + 1, 0, 0, 2, 3, 0, + 7, 128, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 7, 224, 0, 0, 228, 128, + 3, 0, 228, 128, 2, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 16, 0, 228, 160, + 0, 0, 1, 128, 0, 0, + 228, 144, 15, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 17, 0, 228, 160, 2, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 129, 13, 0, - 228, 160, 36, 0, 0, 2, - 3, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 7, 128, 3, 0, - 228, 128, 4, 0, 228, 161, - 36, 0, 0, 2, 4, 0, + 2, 128, 0, 0, 228, 144, + 16, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 17, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 228, 129, 13, 0, 228, 160, + 36, 0, 0, 2, 3, 0, 7, 128, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 4, 0, 228, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 4, 0, 7, 128, - 3, 0, 228, 128, 5, 0, - 228, 161, 2, 0, 0, 3, - 3, 0, 7, 128, 3, 0, - 228, 128, 6, 0, 228, 161, - 36, 0, 0, 2, 5, 0, + 2, 0, 0, 3, 0, 0, 7, 128, 3, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 4, 128, 5, 0, 228, 128, - 1, 0, 228, 128, 36, 0, - 0, 2, 3, 0, 7, 128, - 4, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 2, 128, - 3, 0, 228, 128, 1, 0, - 228, 128, 11, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 25, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 7, 128, 2, 0, 228, 128, - 0, 0, 228, 128, 15, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 0, 128, 15, 0, - 0, 2, 1, 0, 2, 128, - 0, 0, 85, 128, 15, 0, - 0, 2, 1, 0, 4, 128, - 0, 0, 170, 128, 5, 0, + 4, 0, 228, 161, 36, 0, + 0, 2, 4, 0, 7, 128, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 4, 0, 228, 128, 1, 0, + 228, 128, 2, 0, 0, 3, + 4, 0, 7, 128, 3, 0, + 228, 128, 5, 0, 228, 161, + 2, 0, 0, 3, 3, 0, + 7, 128, 3, 0, 228, 128, + 6, 0, 228, 161, 36, 0, + 0, 2, 5, 0, 7, 128, + 3, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 5, 0, 228, 128, 1, 0, + 228, 128, 36, 0, 0, 2, + 3, 0, 7, 128, 4, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 2, 128, 3, 0, + 228, 128, 1, 0, 228, 128, + 11, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 25, 0, 0, 160, 5, 0, 0, 3, 0, 0, 7, 128, - 1, 0, 228, 128, 3, 0, - 255, 160, 14, 0, 0, 2, - 0, 0, 1, 128, 0, 0, - 0, 128, 14, 0, 0, 2, - 0, 0, 2, 128, 0, 0, - 85, 128, 14, 0, 0, 2, - 0, 0, 4, 128, 0, 0, + 2, 0, 228, 128, 0, 0, + 228, 128, 15, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 0, 128, 15, 0, 0, 2, + 1, 0, 2, 128, 0, 0, + 85, 128, 15, 0, 0, 2, + 1, 0, 4, 128, 0, 0, 170, 128, 5, 0, 0, 3, - 1, 0, 7, 128, 0, 0, - 85, 128, 11, 0, 228, 160, + 0, 0, 7, 128, 1, 0, + 228, 128, 3, 0, 255, 160, + 14, 0, 0, 2, 0, 0, + 1, 128, 0, 0, 0, 128, + 14, 0, 0, 2, 0, 0, + 2, 128, 0, 0, 85, 128, + 14, 0, 0, 2, 0, 0, + 4, 128, 0, 0, 170, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 85, 128, + 11, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 11, 128, + 0, 0, 0, 128, 10, 0, + 164, 160, 1, 0, 164, 128, 4, 0, 0, 4, 0, 0, - 11, 128, 0, 0, 0, 128, - 10, 0, 164, 160, 1, 0, - 164, 128, 4, 0, 0, 4, - 0, 0, 7, 128, 0, 0, - 170, 128, 12, 0, 228, 160, - 0, 0, 244, 128, 5, 0, - 0, 3, 1, 0, 7, 224, - 0, 0, 228, 128, 3, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 192, 0, 0, - 228, 144, 23, 0, 228, 160, + 7, 128, 0, 0, 170, 128, + 12, 0, 228, 160, 0, 0, + 244, 128, 5, 0, 0, 3, + 1, 0, 7, 224, 0, 0, + 228, 128, 3, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 14, 0, 228, 160, 11, 0, + 4, 192, 0, 0, 228, 144, + 23, 0, 228, 160, 9, 0, 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 25, 0, - 0, 160, 10, 0, 0, 3, - 1, 0, 8, 224, 0, 0, - 0, 128, 25, 0, 85, 160, - 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 21, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 22, 0, + 0, 0, 228, 144, 14, 0, + 228, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 25, 0, 0, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 25, 0, 85, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 21, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 24, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 0, 0, 8, 224, 1, 0, - 255, 160, 255, 255, 0, 0, - 83, 72, 68, 82, 200, 6, - 0, 0, 64, 0, 1, 0, - 178, 1, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 26, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 114, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 104, 0, 0, 2, 5, 0, + 0, 0, 2, 128, 0, 0, + 228, 144, 22, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 24, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 8, 224, 1, 0, 255, 160, + 255, 255, 0, 0, 83, 72, + 68, 82, 200, 6, 0, 0, + 64, 0, 1, 0, 178, 1, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 26, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 114, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 5, 0, 0, 0, + 16, 0, 0, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, + 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, + 20, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 16, 0, 0, 8, 66, 0, + 0, 0, 21, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 21, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, + 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 18, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 34, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 66, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 29, 0, + 0, 10, 114, 0, 16, 0, + 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 34, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 66, 0, + 0, 0, 1, 0, 0, 10, + 114, 0, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 29, 0, 0, 10, 114, 0, - 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 10, 114, 0, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 3, 0, 0, 0, - 86, 5, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 50, 0, 0, 10, - 178, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 1, 0, 0, 0, 70, 136, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 70, 8, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 1, 0, 0, 0, - 166, 10, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 70, 3, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 3, 0, 0, 0, 86, 5, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 50, 0, 0, 10, 178, 0, + 16, 0, 1, 0, 0, 0, + 6, 0, 16, 0, 1, 0, + 0, 0, 70, 136, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 70, 8, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 1, 0, 0, 0, 166, 10, + 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 130, 32, + 0, 0, 8, 0, 0, 0, + 70, 3, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 58, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 1, 0, + 66, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 0, 0, 0, 9, 114, 0, + 17, 0, 0, 0, 0, 0, + 0, 9, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 16, 0, 0, 7, 130, 0, - 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 68, 0, + 3, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 11, 114, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 1, 0, + 246, 15, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 7, 18, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 3, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 18, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 50, 0, + 1, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 50, 0, 0, 11, 114, 0, 16, 0, - 4, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 50, 0, 0, 11, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, + 0, 0, 5, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 4, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 4, 0, + 114, 0, 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 16, 0, 0, 7, 34, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 1, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 52, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 52, 0, + 0, 10, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 47, 0, 0, 5, + 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 246, 143, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 114, 0, + 47, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 130, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 143, 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 50, 0, - 0, 10, 178, 0, 16, 0, - 0, 0, 0, 0, 6, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 70, 136, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 8, 16, 0, 1, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 1, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 130, + 178, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 136, 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 70, 3, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 114, 32, + 9, 0, 0, 0, 70, 8, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 50, 0, 0, 10, 114, 0, + 16, 0, 0, 0, 0, 0, + 166, 10, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 70, 3, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 32, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 17, 32, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 17, 0, 0, 8, + 18, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 22, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 2, 0, + 130, 32, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, - 2, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 25, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 76, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 76, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 68, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 78, 79, 82, 77, - 65, 76, 0, 171, 79, 83, - 71, 78, 100, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 171, 79, 83, 71, 78, + 100, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 80, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 0, - 0, 0, 67, 79, 76, 79, - 82, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 171, 171 + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 80, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 86, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTx.inc index f5b073f40d34317bad7ae6a93bb4d2de3c032a67..512faba1c5a70ce27059622ae99a34c7853a3f33 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTx.inc @@ -42,61 +42,99 @@ // vs_2_0 def c25, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r0.x, v1, c18 dp3 r0.y, v1, c19 dp3 r0.z, v1, c20 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - dp3 r0.y, -c5, r1 - dp3 r0.z, -c6, r1 - sge r2.xyz, r0, c25.x - mul r0.xyz, r0, r2 + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 + dp3 r0.x, -c4, r1 // ::dotL<0> + dp3 r0.y, -c5, r1 // ::dotL<1> + dp3 r0.z, -c6, r1 // ::dotL<2> + +#line 39 + sge r2.xyz, r0, c25.x // ::zeroL<0,1,2> + mul r0.xyz, r0, r2 // ::diffuse<0,1,2> + +#line 46 mul r3.xyz, r0.y, c8 mad r0.xyw, r0.x, c7.xyzz, r3.xyzz mad r0.xyz, r0.z, c9, r0.xyww - mov r3.xyz, c1 - mad oT0.xyz, r0, r3, c2 - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c17 + mov r3.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0, r3, c2 // ::VSBasicVertexLightingTx<0,1,2> + +#line 57 + dp4 r0.x, v0, c15 // ::pos_ws<0> + dp4 r0.y, v0, c16 // ::pos_ws<1> + dp4 r0.z, v0, c17 // ::pos_ws<2> add r0.xyz, -r0, c13 - nrm r3.xyz, r0 + nrm r3.xyz, r0 // ::eyeVector<0,1,2> + +#line 33 add r0.xyz, r3, -c4 - nrm r4.xyz, r0 - dp3 r0.x, r4, r1 + nrm r4.xyz, r0 // ::halfVectors<0,1,2> + +#line 37 + dp3 r0.x, r4, r1 // ::dotH<0> + +#line 33 add r4.xyz, r3, -c5 add r3.xyz, r3, -c6 - nrm r5.xyz, r3 - dp3 r0.z, r5, r1 - nrm r3.xyz, r4 - dp3 r0.y, r3, r1 + nrm r5.xyz, r3 // ::halfVectors<6,7,8> + +#line 37 + dp3 r0.z, r5, r1 // ::dotH<2> + +#line 33 + nrm r3.xyz, r4 // ::halfVectors<3,4,5> + +#line 37 + dp3 r0.y, r3, r1 // ::dotH<1> + +#line 42 max r0.xyz, r0, c25.x mul r0.xyz, r2, r0 log r1.x, r0.x log r1.y, r0.y log r1.z, r0.z mul r0.xyz, r1, c3.w - exp r0.x, r0.x - exp r0.y, r0.y - exp r0.z, r0.z + exp r0.x, r0.x // ::specular<0> + exp r0.y, r0.y // ::specular<1> + exp r0.z, r0.z // ::specular<2> + +#line 47 mul r1.xyz, r0.y, c11 mad r0.xyw, r0.x, c10.xyzz, r1.xyzz mad r0.xyz, r0.z, c12, r0.xyww - mul oT1.xyz, r0, c3 - dp4 oPos.z, v0, c23 + mul oT1.xyz, r0, c3 // ::VSBasicVertexLightingTx<4,5,6> + +#line 63 + dp4 oPos.z, v0, c23 // ::VSBasicVertexLightingTx<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c14 max r0.x, r0.x, c25.x - min oT1.w, r0.x, c25.y - dp4 r0.x, v0, c21 - dp4 r0.y, v0, c22 - dp4 r0.z, v0, c24 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c1.w - mov oT2.xy, v2 + min oT1.w, r0.x, c25.y // ::VSBasicVertexLightingTx<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c21 // ::vout<0> + dp4 r0.y, v0, c22 // ::vout<1> + dp4 r0.z, v0, c24 // ::vout<3> + +#line 180 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicVertexLightingTx<10,11> + mov oPos.w, r0.z // ::VSBasicVertexLightingTx<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c1.w // ::VSBasicVertexLightingTx<3> + +#line 187 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mov oT2.xy, v2 // ::VSBasicVertexLightingTx<8,9> // approximately 62 instruction slots used vs_4_0 @@ -168,17 +206,17 @@ ret const BYTE BasicEffect_VSBasicVertexLightingTx[] = { - 68, 88, 66, 67, 47, 196, - 250, 120, 243, 184, 64, 199, - 182, 131, 36, 33, 211, 185, - 23, 197, 1, 0, 0, 0, - 224, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 128, 152, + 53, 198, 172, 158, 146, 237, + 44, 232, 207, 138, 186, 159, + 64, 219, 1, 0, 0, 0, + 64, 19, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 228, 3, 0, 0, 224, 10, - 0, 0, 84, 11, 0, 0, - 65, 111, 110, 57, 172, 3, - 0, 0, 172, 3, 0, 0, - 0, 2, 254, 255, 96, 3, + 68, 11, 0, 0, 64, 18, + 0, 0, 180, 18, 0, 0, + 65, 111, 110, 57, 12, 11, + 0, 0, 12, 11, 0, 0, + 0, 2, 254, 255, 192, 10, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -190,489 +228,804 @@ const BYTE BasicEffect_VSBasicVertexLightingTx[] = 0, 0, 0, 0, 19, 0, 7, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 25, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 215, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 48, 7, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 8, 0, - 0, 3, 0, 0, 1, 128, - 1, 0, 228, 144, 18, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 19, 0, 228, 160, + 3, 0, 0, 0, 4, 1, + 0, 0, 56, 0, 0, 0, + 16, 1, 0, 0, 13, 0, + 0, 0, 44, 6, 0, 0, + 4, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 100, 7, 0, 0, 0, 0, + 255, 255, 124, 7, 0, 0, + 0, 0, 255, 255, 136, 7, + 0, 0, 0, 0, 255, 255, + 148, 7, 0, 0, 59, 0, + 0, 0, 160, 7, 0, 0, + 59, 0, 0, 0, 176, 7, + 0, 0, 59, 0, 0, 0, + 192, 7, 0, 0, 59, 0, + 0, 0, 208, 7, 0, 0, + 36, 0, 0, 0, 220, 7, + 0, 0, 36, 0, 0, 0, + 236, 7, 0, 0, 36, 0, + 0, 0, 252, 7, 0, 0, + 39, 0, 0, 0, 12, 8, + 0, 0, 41, 0, 0, 0, + 28, 8, 0, 0, 46, 0, + 0, 0, 44, 8, 0, 0, + 46, 0, 0, 0, 60, 8, + 0, 0, 46, 0, 0, 0, + 80, 8, 0, 0, 46, 0, + 0, 0, 100, 8, 0, 0, + 46, 0, 0, 0, 112, 8, + 0, 0, 57, 0, 0, 0, + 132, 8, 0, 0, 57, 0, + 0, 0, 148, 8, 0, 0, + 57, 0, 0, 0, 164, 8, + 0, 0, 58, 0, 0, 0, + 180, 8, 0, 0, 58, 0, + 0, 0, 196, 8, 0, 0, + 33, 0, 0, 0, 208, 8, + 0, 0, 33, 0, 0, 0, + 224, 8, 0, 0, 37, 0, + 0, 0, 236, 8, 0, 0, + 33, 0, 0, 0, 252, 8, + 0, 0, 33, 0, 0, 0, + 12, 9, 0, 0, 33, 0, + 0, 0, 28, 9, 0, 0, + 37, 0, 0, 0, 40, 9, + 0, 0, 33, 0, 0, 0, + 56, 9, 0, 0, 37, 0, + 0, 0, 68, 9, 0, 0, + 42, 0, 0, 0, 84, 9, + 0, 0, 42, 0, 0, 0, + 100, 9, 0, 0, 42, 0, + 0, 0, 116, 9, 0, 0, + 42, 0, 0, 0, 128, 9, + 0, 0, 42, 0, 0, 0, + 140, 9, 0, 0, 42, 0, + 0, 0, 152, 9, 0, 0, + 42, 0, 0, 0, 168, 9, + 0, 0, 42, 0, 0, 0, + 180, 9, 0, 0, 42, 0, + 0, 0, 192, 9, 0, 0, + 47, 0, 0, 0, 204, 9, + 0, 0, 47, 0, 0, 0, + 220, 9, 0, 0, 47, 0, + 0, 0, 240, 9, 0, 0, + 47, 0, 0, 0, 4, 10, + 0, 0, 63, 0, 0, 0, + 20, 10, 0, 0, 14, 0, + 1, 0, 36, 10, 0, 0, + 14, 0, 1, 0, 52, 10, + 0, 0, 14, 0, 1, 0, + 68, 10, 0, 0, 63, 0, + 0, 0, 84, 10, 0, 0, + 63, 0, 0, 0, 100, 10, + 0, 0, 63, 0, 0, 0, + 116, 10, 0, 0, 180, 0, + 2, 0, 132, 10, 0, 0, + 180, 0, 2, 0, 152, 10, + 0, 0, 46, 0, 0, 0, + 164, 10, 0, 0, 187, 0, + 2, 0, 176, 10, 0, 0, + 80, 97, 114, 97, 109, 101, + 116, 101, 114, 115, 0, 68, + 105, 102, 102, 117, 115, 101, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 86, 83, + 66, 97, 115, 105, 99, 86, + 101, 114, 116, 101, 120, 76, + 105, 103, 104, 116, 105, 110, + 103, 84, 120, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 28, 3, + 0, 0, 36, 3, 0, 0, + 52, 3, 0, 0, 36, 3, + 0, 0, 61, 3, 0, 0, + 72, 3, 0, 0, 88, 3, + 0, 0, 36, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 14, 0, 1, 0, 4, 0, + 100, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 44, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 45, 0, + 0, 0, 255, 255, 255, 255, + 12, 0, 255, 255, 48, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 52, 0, + 0, 0, 10, 0, 11, 0, + 255, 255, 255, 255, 53, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 54, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 55, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 111, + 116, 72, 0, 171, 171, 171, + 25, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 29, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 31, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 8, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 9, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 10, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 22, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 28, 0, 0, 0, 6, 0, + 7, 0, 8, 0, 255, 255, + 30, 0, 0, 0, 3, 0, + 4, 0, 5, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 18, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 19, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 20, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 38, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 39, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 40, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 78, 111, 114, + 109, 97, 108, 0, 40, 5, + 0, 0, 36, 3, 0, 0, + 49, 5, 0, 0, 252, 3, + 0, 0, 61, 3, 0, 0, + 72, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 9, 0, + 1, 0, 3, 0, 56, 5, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 137, 5, 0, 0, 36, 3, + 0, 0, 28, 3, 0, 0, + 36, 3, 0, 0, 52, 3, + 0, 0, 252, 3, 0, 0, + 144, 5, 0, 0, 156, 5, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 172, 5, 0, 0, + 49, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 50, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 51, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 208, 2, 0, 0, + 219, 2, 0, 0, 232, 2, + 0, 0, 1, 0, 0, 0, + 248, 2, 0, 0, 0, 0, + 0, 0, 4, 3, 0, 0, + 132, 3, 0, 0, 8, 0, + 0, 0, 148, 3, 0, 0, + 0, 0, 0, 0, 244, 3, + 0, 0, 252, 3, 0, 0, + 1, 0, 0, 0, 12, 4, + 0, 0, 0, 0, 0, 0, + 24, 4, 0, 0, 252, 3, + 0, 0, 3, 0, 0, 0, + 32, 4, 0, 0, 0, 0, + 0, 0, 68, 4, 0, 0, + 252, 3, 0, 0, 3, 0, + 0, 0, 76, 4, 0, 0, + 0, 0, 0, 0, 112, 4, + 0, 0, 252, 3, 0, 0, + 1, 0, 0, 0, 124, 4, + 0, 0, 0, 0, 0, 0, + 136, 4, 0, 0, 148, 4, + 0, 0, 3, 0, 0, 0, + 164, 4, 0, 0, 0, 0, + 0, 0, 200, 4, 0, 0, + 36, 3, 0, 0, 3, 0, + 0, 0, 208, 4, 0, 0, + 0, 0, 0, 0, 244, 4, + 0, 0, 252, 3, 0, 0, + 3, 0, 0, 0, 0, 5, + 0, 0, 4, 3, 0, 0, + 36, 5, 0, 0, 80, 5, + 0, 0, 3, 0, 0, 0, + 96, 5, 0, 0, 0, 0, + 0, 0, 132, 5, 0, 0, + 204, 5, 0, 0, 3, 0, + 0, 0, 220, 5, 0, 0, + 0, 0, 0, 0, 0, 6, + 0, 0, 252, 3, 0, 0, + 1, 0, 0, 0, 12, 6, + 0, 0, 0, 0, 0, 0, + 24, 6, 0, 0, 252, 3, + 0, 0, 1, 0, 0, 0, + 32, 6, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 25, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 18, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 4, 128, 1, 0, 228, 144, - 20, 0, 228, 160, 36, 0, - 0, 2, 1, 0, 7, 128, - 0, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 1, 128, - 4, 0, 228, 161, 1, 0, + 2, 128, 1, 0, 228, 144, + 19, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 4, 128, + 1, 0, 228, 144, 20, 0, + 228, 160, 36, 0, 0, 2, + 1, 0, 7, 128, 0, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 5, 0, + 0, 0, 1, 128, 4, 0, 228, 161, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 4, 128, 6, 0, 228, 161, - 1, 0, 228, 128, 13, 0, - 0, 3, 2, 0, 7, 128, - 0, 0, 228, 128, 25, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 228, 128, - 5, 0, 0, 3, 3, 0, - 7, 128, 0, 0, 85, 128, - 8, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 11, 128, - 0, 0, 0, 128, 7, 0, - 164, 160, 3, 0, 164, 128, - 4, 0, 0, 4, 0, 0, - 7, 128, 0, 0, 170, 128, - 9, 0, 228, 160, 0, 0, - 244, 128, 1, 0, 0, 2, - 3, 0, 7, 128, 1, 0, + 2, 128, 5, 0, 228, 161, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 6, 0, 228, 161, 1, 0, + 228, 128, 13, 0, 0, 3, + 2, 0, 7, 128, 0, 0, + 228, 128, 25, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 2, 0, 228, 128, 5, 0, + 0, 3, 3, 0, 7, 128, + 0, 0, 85, 128, 8, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 7, 224, 0, 0, - 228, 128, 3, 0, 228, 128, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 15, 0, + 0, 0, 11, 128, 0, 0, + 0, 128, 7, 0, 164, 160, + 3, 0, 164, 128, 4, 0, + 0, 4, 0, 0, 7, 128, + 0, 0, 170, 128, 9, 0, + 228, 160, 0, 0, 244, 128, + 1, 0, 0, 2, 3, 0, + 7, 128, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 7, 224, 0, 0, 228, 128, + 3, 0, 228, 128, 2, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 16, 0, 228, 160, + 0, 0, 1, 128, 0, 0, + 228, 144, 15, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 17, 0, 228, 160, 2, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 129, 13, 0, - 228, 160, 36, 0, 0, 2, - 3, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 7, 128, 3, 0, - 228, 128, 4, 0, 228, 161, - 36, 0, 0, 2, 4, 0, + 2, 128, 0, 0, 228, 144, + 16, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 17, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 228, 129, 13, 0, 228, 160, + 36, 0, 0, 2, 3, 0, 7, 128, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 4, 0, 228, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 4, 0, 7, 128, - 3, 0, 228, 128, 5, 0, - 228, 161, 2, 0, 0, 3, - 3, 0, 7, 128, 3, 0, - 228, 128, 6, 0, 228, 161, - 36, 0, 0, 2, 5, 0, + 2, 0, 0, 3, 0, 0, 7, 128, 3, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 4, 128, 5, 0, 228, 128, - 1, 0, 228, 128, 36, 0, - 0, 2, 3, 0, 7, 128, - 4, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 2, 128, - 3, 0, 228, 128, 1, 0, - 228, 128, 11, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 25, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 7, 128, 2, 0, 228, 128, - 0, 0, 228, 128, 15, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 0, 128, 15, 0, - 0, 2, 1, 0, 2, 128, - 0, 0, 85, 128, 15, 0, - 0, 2, 1, 0, 4, 128, - 0, 0, 170, 128, 5, 0, + 4, 0, 228, 161, 36, 0, + 0, 2, 4, 0, 7, 128, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 4, 0, 228, 128, 1, 0, + 228, 128, 2, 0, 0, 3, + 4, 0, 7, 128, 3, 0, + 228, 128, 5, 0, 228, 161, + 2, 0, 0, 3, 3, 0, + 7, 128, 3, 0, 228, 128, + 6, 0, 228, 161, 36, 0, + 0, 2, 5, 0, 7, 128, + 3, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 5, 0, 228, 128, 1, 0, + 228, 128, 36, 0, 0, 2, + 3, 0, 7, 128, 4, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 2, 128, 3, 0, + 228, 128, 1, 0, 228, 128, + 11, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 25, 0, 0, 160, 5, 0, 0, 3, 0, 0, 7, 128, - 1, 0, 228, 128, 3, 0, - 255, 160, 14, 0, 0, 2, - 0, 0, 1, 128, 0, 0, - 0, 128, 14, 0, 0, 2, - 0, 0, 2, 128, 0, 0, - 85, 128, 14, 0, 0, 2, - 0, 0, 4, 128, 0, 0, + 2, 0, 228, 128, 0, 0, + 228, 128, 15, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 0, 128, 15, 0, 0, 2, + 1, 0, 2, 128, 0, 0, + 85, 128, 15, 0, 0, 2, + 1, 0, 4, 128, 0, 0, 170, 128, 5, 0, 0, 3, - 1, 0, 7, 128, 0, 0, - 85, 128, 11, 0, 228, 160, + 0, 0, 7, 128, 1, 0, + 228, 128, 3, 0, 255, 160, + 14, 0, 0, 2, 0, 0, + 1, 128, 0, 0, 0, 128, + 14, 0, 0, 2, 0, 0, + 2, 128, 0, 0, 85, 128, + 14, 0, 0, 2, 0, 0, + 4, 128, 0, 0, 170, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 85, 128, + 11, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 11, 128, + 0, 0, 0, 128, 10, 0, + 164, 160, 1, 0, 164, 128, 4, 0, 0, 4, 0, 0, - 11, 128, 0, 0, 0, 128, - 10, 0, 164, 160, 1, 0, - 164, 128, 4, 0, 0, 4, - 0, 0, 7, 128, 0, 0, - 170, 128, 12, 0, 228, 160, - 0, 0, 244, 128, 5, 0, - 0, 3, 1, 0, 7, 224, - 0, 0, 228, 128, 3, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 192, 0, 0, - 228, 144, 23, 0, 228, 160, + 7, 128, 0, 0, 170, 128, + 12, 0, 228, 160, 0, 0, + 244, 128, 5, 0, 0, 3, + 1, 0, 7, 224, 0, 0, + 228, 128, 3, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 14, 0, 228, 160, 11, 0, + 4, 192, 0, 0, 228, 144, + 23, 0, 228, 160, 9, 0, 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 25, 0, - 0, 160, 10, 0, 0, 3, - 1, 0, 8, 224, 0, 0, - 0, 128, 25, 0, 85, 160, - 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 144, - 21, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 22, 0, + 0, 0, 228, 144, 14, 0, + 228, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 25, 0, 0, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 25, 0, 85, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 21, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 0, 0, - 228, 144, 24, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 0, 0, 8, 224, 1, 0, - 255, 160, 1, 0, 0, 2, - 2, 0, 3, 224, 2, 0, - 228, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 244, 6, - 0, 0, 64, 0, 1, 0, - 189, 1, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 26, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 114, 16, 16, 0, 1, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 104, 0, 0, 2, 5, 0, + 0, 0, 2, 128, 0, 0, + 228, 144, 22, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 24, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 8, 224, 1, 0, 255, 160, + 1, 0, 0, 2, 2, 0, + 3, 224, 2, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 244, 6, 0, 0, + 64, 0, 1, 0, 189, 1, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 26, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 114, 16, + 16, 0, 1, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 2, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 5, 0, 0, 0, + 16, 0, 0, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, + 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, + 20, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 16, 0, 0, 8, 66, 0, + 0, 0, 21, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 21, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 18, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 34, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 66, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 29, 0, + 0, 10, 114, 0, 16, 0, + 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 34, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 66, 0, + 0, 0, 1, 0, 0, 10, + 114, 0, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 29, 0, 0, 10, 114, 0, - 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 10, 114, 0, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 3, 0, 0, 0, - 86, 5, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 50, 0, 0, 10, - 178, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 1, 0, 0, 0, 70, 136, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 70, 8, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 1, 0, 0, 0, - 166, 10, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 70, 3, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 3, 0, 0, 0, 86, 5, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 50, 0, 0, 10, 178, 0, + 16, 0, 1, 0, 0, 0, + 6, 0, 16, 0, 1, 0, + 0, 0, 70, 136, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 70, 8, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 1, 0, 0, 0, 166, 10, + 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 130, 32, + 0, 0, 8, 0, 0, 0, + 70, 3, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 58, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 1, 0, + 66, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 0, 0, 0, 9, 114, 0, + 17, 0, 0, 0, 0, 0, + 0, 9, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 16, 0, 0, 7, 130, 0, - 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 68, 0, + 3, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 11, 114, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 1, 0, + 246, 15, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 7, 18, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 3, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 18, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 50, 0, + 1, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 50, 0, 0, 11, 114, 0, 16, 0, - 4, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 50, 0, 0, 11, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, + 0, 0, 5, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 4, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 4, 0, + 114, 0, 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 16, 0, 0, 7, 34, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 1, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 52, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 52, 0, + 0, 10, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 47, 0, 0, 5, + 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 246, 143, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 114, 0, + 47, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 50, 0, - 0, 10, 178, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 136, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 8, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, 114, 0, 16, 0, 0, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 130, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 143, 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 70, 3, + 2, 0, 0, 0, 25, 0, + 0, 5, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 114, 32, + 56, 0, 0, 8, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 86, 5, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, + 0, 0, 0, 0, 10, 0, + 0, 0, 50, 0, 0, 10, + 178, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 136, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 2, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 17, 0, 0, 8, 18, 32, + 9, 0, 0, 0, 70, 8, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 114, 0, + 16, 0, 0, 0, 0, 0, + 166, 10, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 70, 3, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 32, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 17, 32, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 2, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 3, 0, + 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 24, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 17, 0, 0, 8, 130, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 25, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 108, 0, + 0, 0, 25, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 108, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 79, 83, 71, 78, 132, 0, + 0, 0, 4, 0, 0, 0, + 8, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 92, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 104, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 99, 0, + 15, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 79, 83, 71, 78, - 132, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, + 3, 12, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 104, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 110, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 12, 0, 0, - 119, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 1, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTxVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTxVc.inc index d26ebf2bbfab573acdb3ec6f26965b1c880e7451..183879a20aab104909a75ec78ec40cfa421d191d 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTxVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingTxVc.inc @@ -43,63 +43,105 @@ // vs_2_0 def c25, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c17 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + +#line 57 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c15 // ::pos_ws<0> + dp4 r0.y, v0, c16 // ::pos_ws<1> + dp4 r0.z, v0, c17 // ::pos_ws<2> add r0.xyz, -r0, c13 - nrm r1.xyz, r0 + nrm r1.xyz, r0 // ::eyeVector<0,1,2> + +#line 33 add r0.xyz, r1, -c4 - nrm r2.xyz, r0 + nrm r2.xyz, r0 // ::halfVectors<0,1,2> + +#line 59 dp3 r0.x, v1, c18 dp3 r0.y, v1, c19 dp3 r0.z, v1, c20 - nrm r3.xyz, r0 - dp3 r0.x, r2, r3 + nrm r3.xyz, r0 // ::worldNormal<0,1,2> + +#line 37 + dp3 r0.x, r2, r3 // ::dotH<0> + +#line 33 add r2.xyz, r1, -c5 add r1.xyz, r1, -c6 - nrm r4.xyz, r1 - dp3 r0.z, r4, r3 - nrm r1.xyz, r2 - dp3 r0.y, r1, r3 + nrm r4.xyz, r1 // ::halfVectors<6,7,8> + +#line 37 + dp3 r0.z, r4, r3 // ::dotH<2> + +#line 33 + nrm r1.xyz, r2 // ::halfVectors<3,4,5> + +#line 37 + dp3 r0.y, r1, r3 // ::dotH<1> + +#line 42 max r0.xyz, r0, c25.x - dp3 r1.x, -c4, r3 - dp3 r1.y, -c5, r3 - dp3 r1.z, -c6, r3 - sge r2.xyz, r1, c25.x - mul r1.xyz, r1, r2 + +#line 36 + dp3 r1.x, -c4, r3 // ::dotL<0> + dp3 r1.y, -c5, r3 // ::dotL<1> + dp3 r1.z, -c6, r3 // ::dotL<2> + +#line 39 + sge r2.xyz, r1, c25.x // ::zeroL<0,1,2> + mul r1.xyz, r1, r2 // ::diffuse<0,1,2> mul r0.xyz, r0, r2 log r2.x, r0.x log r2.y, r0.y log r2.z, r0.z mul r0.xyz, r2, c3.w - exp r0.y, r0.y + exp r0.y, r0.y // ::specular<1> + +#line 47 mul r2.xyz, r0.y, c11 - exp r0.x, r0.x - exp r0.y, r0.z + +#line 42 + exp r0.x, r0.x // ::specular<0> + exp r0.y, r0.z // ::specular<2> + +#line 47 mad r0.xzw, r0.x, c10.xyyz, r2.xyyz mad r0.xyz, r0.y, c12, r0.xzww - mul oT1.xyz, r0, c3 - dp4 oPos.z, v0, c23 + mul oT1.xyz, r0, c3 // ::VSBasicVertexLightingTxVc<4,5,6> + +#line 63 + dp4 oPos.z, v0, c23 // ::VSBasicVertexLightingTxVc<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c14 max r0.x, r0.x, c25.x - min oT1.w, r0.x, c25.y + min oT1.w, r0.x, c25.y // ::VSBasicVertexLightingTxVc<7> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mul r0.xyz, r1.y, c8 mad r0.xyz, r1.x, c7, r0 mad r0.xyz, r1.z, c9, r0 - mov r1.xyz, c1 - mad r0.xyz, r0, r1, c2 - mul oT0.xyz, r0, v3 - mul oT0.w, v3.w, c1.w - dp4 r0.x, v0, c21 - dp4 r0.y, v0, c22 - dp4 r0.z, v0, c24 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT2.xy, v2 + mov r1.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad r0.xyz, r0, r1, c2 // ::result<0,1,2> + +#line 202 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0.xyz, r0, v3 // ::VSBasicVertexLightingTxVc<0,1,2> + mul oT0.w, v3.w, c1.w // ::VSBasicVertexLightingTxVc<3> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c21 // ::vout<0> + dp4 r0.y, v0, c22 // ::vout<1> + dp4 r0.z, v0, c24 // ::vout<3> + +#line 194 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicVertexLightingTxVc<10,11> + mov oPos.w, r0.z // ::VSBasicVertexLightingTxVc<13> + +#line 201 + mov oT2.xy, v2 // ::VSBasicVertexLightingTxVc<8,9> // approximately 63 instruction slots used vs_4_0 @@ -173,17 +215,17 @@ ret const BYTE BasicEffect_VSBasicVertexLightingTxVc[] = { - 68, 88, 66, 67, 172, 92, - 161, 128, 77, 17, 34, 173, - 170, 124, 195, 216, 46, 216, - 135, 106, 1, 0, 0, 0, - 80, 12, 0, 0, 4, 0, + 68, 88, 66, 67, 210, 196, + 69, 235, 174, 230, 252, 142, + 74, 169, 9, 49, 0, 169, + 138, 236, 1, 0, 0, 0, + 40, 20, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 4, 4, 0, 0, 48, 11, - 0, 0, 196, 11, 0, 0, - 65, 111, 110, 57, 204, 3, - 0, 0, 204, 3, 0, 0, - 0, 2, 254, 255, 128, 3, + 220, 11, 0, 0, 8, 19, + 0, 0, 156, 19, 0, 0, + 65, 111, 110, 57, 164, 11, + 0, 0, 164, 11, 0, 0, + 0, 2, 254, 255, 88, 11, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -195,508 +237,842 @@ const BYTE BasicEffect_VSBasicVertexLightingTxVc[] = 0, 0, 0, 0, 19, 0, 7, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 25, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 245, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 168, 7, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 15, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 16, 0, 228, 160, + 3, 0, 0, 0, 4, 1, + 0, 0, 58, 0, 0, 0, + 16, 1, 0, 0, 14, 0, + 0, 0, 144, 6, 0, 0, + 20, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 220, 7, 0, 0, 0, 0, + 255, 255, 244, 7, 0, 0, + 0, 0, 255, 255, 0, 8, + 0, 0, 0, 0, 255, 255, + 12, 8, 0, 0, 0, 0, + 255, 255, 24, 8, 0, 0, + 57, 0, 0, 0, 36, 8, + 0, 0, 57, 0, 0, 0, + 52, 8, 0, 0, 57, 0, + 0, 0, 68, 8, 0, 0, + 58, 0, 0, 0, 84, 8, + 0, 0, 58, 0, 0, 0, + 100, 8, 0, 0, 33, 0, + 0, 0, 112, 8, 0, 0, + 33, 0, 0, 0, 128, 8, + 0, 0, 59, 0, 0, 0, + 140, 8, 0, 0, 59, 0, + 0, 0, 156, 8, 0, 0, + 59, 0, 0, 0, 172, 8, + 0, 0, 59, 0, 0, 0, + 188, 8, 0, 0, 37, 0, + 0, 0, 200, 8, 0, 0, + 33, 0, 0, 0, 216, 8, + 0, 0, 33, 0, 0, 0, + 232, 8, 0, 0, 33, 0, + 0, 0, 248, 8, 0, 0, + 37, 0, 0, 0, 4, 9, + 0, 0, 33, 0, 0, 0, + 20, 9, 0, 0, 37, 0, + 0, 0, 32, 9, 0, 0, + 42, 0, 0, 0, 48, 9, + 0, 0, 36, 0, 0, 0, + 64, 9, 0, 0, 36, 0, + 0, 0, 80, 9, 0, 0, + 36, 0, 0, 0, 96, 9, + 0, 0, 39, 0, 0, 0, + 112, 9, 0, 0, 41, 0, + 0, 0, 128, 9, 0, 0, + 42, 0, 0, 0, 144, 9, + 0, 0, 42, 0, 0, 0, + 160, 9, 0, 0, 42, 0, + 0, 0, 172, 9, 0, 0, + 42, 0, 0, 0, 184, 9, + 0, 0, 42, 0, 0, 0, + 196, 9, 0, 0, 42, 0, + 0, 0, 212, 9, 0, 0, + 47, 0, 0, 0, 224, 9, + 0, 0, 42, 0, 0, 0, + 240, 9, 0, 0, 42, 0, + 0, 0, 252, 9, 0, 0, + 47, 0, 0, 0, 8, 10, + 0, 0, 47, 0, 0, 0, + 28, 10, 0, 0, 47, 0, + 0, 0, 48, 10, 0, 0, + 63, 0, 0, 0, 64, 10, + 0, 0, 14, 0, 1, 0, + 80, 10, 0, 0, 14, 0, + 1, 0, 96, 10, 0, 0, + 14, 0, 1, 0, 112, 10, + 0, 0, 46, 0, 0, 0, + 128, 10, 0, 0, 46, 0, + 0, 0, 144, 10, 0, 0, + 46, 0, 0, 0, 164, 10, + 0, 0, 46, 0, 0, 0, + 184, 10, 0, 0, 46, 0, + 0, 0, 196, 10, 0, 0, + 202, 0, 2, 0, 216, 10, + 0, 0, 202, 0, 2, 0, + 232, 10, 0, 0, 63, 0, + 0, 0, 248, 10, 0, 0, + 63, 0, 0, 0, 8, 11, + 0, 0, 63, 0, 0, 0, + 24, 11, 0, 0, 194, 0, + 2, 0, 40, 11, 0, 0, + 194, 0, 2, 0, 60, 11, + 0, 0, 201, 0, 2, 0, + 72, 11, 0, 0, 80, 97, + 114, 97, 109, 101, 116, 101, + 114, 115, 0, 68, 105, 102, + 102, 117, 115, 101, 67, 111, + 108, 111, 114, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 86, 83, 66, 97, + 115, 105, 99, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 84, + 120, 86, 99, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 46, 3, 0, 0, 56, 3, + 0, 0, 72, 3, 0, 0, + 56, 3, 0, 0, 81, 3, + 0, 0, 92, 3, 0, 0, + 108, 3, 0, 0, 56, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 14, 0, 1, 0, + 4, 0, 120, 3, 0, 0, + 40, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 41, 0, 0, 0, 255, 255, + 255, 255, 12, 0, 255, 255, + 44, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 50, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 51, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 55, 0, 0, 0, 10, 0, + 11, 0, 255, 255, 255, 255, + 56, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 13, 0, + 57, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 100, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 100, 111, 116, 72, 0, 171, + 171, 171, 16, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 20, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 22, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 24, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 25, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 26, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 101, 121, + 101, 86, 101, 99, 116, 111, + 114, 0, 171, 171, 9, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 104, 97, + 108, 102, 86, 101, 99, 116, + 111, 114, 115, 0, 3, 0, + 3, 0, 3, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 19, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 21, 0, 0, 0, + 3, 0, 4, 0, 5, 0, + 255, 255, 112, 111, 115, 95, + 119, 115, 0, 171, 5, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 6, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 7, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 114, 101, + 115, 117, 108, 116, 0, 171, + 46, 3, 0, 0, 16, 4, + 0, 0, 72, 3, 0, 0, + 16, 4, 0, 0, 5, 0, + 0, 0, 1, 0, 6, 0, + 1, 0, 2, 0, 16, 5, + 0, 0, 49, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 34, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 36, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 37, 0, 0, 0, + 255, 255, 2, 0, 255, 255, + 255, 255, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 78, 111, 114, + 109, 97, 108, 0, 67, 111, + 108, 111, 114, 0, 171, 171, + 112, 5, 0, 0, 56, 3, + 0, 0, 121, 5, 0, 0, + 16, 4, 0, 0, 81, 3, + 0, 0, 92, 3, 0, 0, + 128, 5, 0, 0, 56, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 13, 0, 1, 0, + 4, 0, 136, 5, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 4, 0, 0, 0, 9, 0, + 10, 0, 11, 0, 12, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 237, 5, + 0, 0, 56, 3, 0, 0, + 46, 3, 0, 0, 56, 3, + 0, 0, 72, 3, 0, 0, + 16, 4, 0, 0, 244, 5, + 0, 0, 0, 6, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 16, 6, 0, 0, 52, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 53, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 54, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 97, 108, 0, 15, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 122, 101, + 114, 111, 76, 0, 171, 171, + 27, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 224, 2, 0, 0, 235, 2, + 0, 0, 248, 2, 0, 0, + 1, 0, 0, 0, 8, 3, + 0, 0, 0, 0, 0, 0, + 20, 3, 0, 0, 152, 3, + 0, 0, 8, 0, 0, 0, + 168, 3, 0, 0, 0, 0, + 0, 0, 8, 4, 0, 0, + 16, 4, 0, 0, 1, 0, + 0, 0, 32, 4, 0, 0, + 0, 0, 0, 0, 44, 4, + 0, 0, 16, 4, 0, 0, + 3, 0, 0, 0, 52, 4, + 0, 0, 0, 0, 0, 0, + 88, 4, 0, 0, 16, 4, + 0, 0, 3, 0, 0, 0, + 96, 4, 0, 0, 0, 0, + 0, 0, 132, 4, 0, 0, + 16, 4, 0, 0, 1, 0, + 0, 0, 144, 4, 0, 0, + 0, 0, 0, 0, 156, 4, + 0, 0, 168, 4, 0, 0, + 3, 0, 0, 0, 184, 4, + 0, 0, 0, 0, 0, 0, + 220, 4, 0, 0, 56, 3, + 0, 0, 3, 0, 0, 0, + 228, 4, 0, 0, 0, 0, + 0, 0, 8, 5, 0, 0, + 32, 5, 0, 0, 1, 0, + 0, 0, 48, 5, 0, 0, + 0, 0, 0, 0, 60, 5, + 0, 0, 16, 4, 0, 0, + 3, 0, 0, 0, 72, 5, + 0, 0, 20, 3, 0, 0, + 108, 5, 0, 0, 168, 5, + 0, 0, 4, 0, 0, 0, + 184, 5, 0, 0, 0, 0, + 0, 0, 232, 5, 0, 0, + 48, 6, 0, 0, 3, 0, + 0, 0, 64, 6, 0, 0, + 0, 0, 0, 0, 100, 6, + 0, 0, 16, 4, 0, 0, + 1, 0, 0, 0, 112, 6, + 0, 0, 0, 0, 0, 0, + 124, 6, 0, 0, 16, 4, + 0, 0, 1, 0, 0, 0, + 132, 6, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 25, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 3, 128, 3, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 228, 144, 15, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 17, 0, 228, 160, 2, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 129, 13, 0, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 7, 128, 1, 0, - 228, 128, 4, 0, 228, 161, - 36, 0, 0, 2, 2, 0, + 2, 128, 0, 0, 228, 144, + 16, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 17, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 228, 129, 13, 0, 228, 160, + 36, 0, 0, 2, 1, 0, 7, 128, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 18, 0, 228, 160, 8, 0, - 0, 3, 0, 0, 2, 128, - 1, 0, 228, 144, 19, 0, + 2, 0, 0, 3, 0, 0, + 7, 128, 1, 0, 228, 128, + 4, 0, 228, 161, 36, 0, + 0, 2, 2, 0, 7, 128, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 144, 18, 0, 228, 160, 8, 0, 0, 3, - 0, 0, 4, 128, 1, 0, - 228, 144, 20, 0, 228, 160, - 36, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 128, + 0, 0, 2, 128, 1, 0, + 228, 144, 19, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 1, 128, 2, 0, 228, 128, - 3, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 7, 128, - 1, 0, 228, 128, 5, 0, - 228, 161, 2, 0, 0, 3, - 1, 0, 7, 128, 1, 0, - 228, 128, 6, 0, 228, 161, - 36, 0, 0, 2, 4, 0, + 4, 128, 1, 0, 228, 144, + 20, 0, 228, 160, 36, 0, + 0, 2, 3, 0, 7, 128, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 2, 0, 228, 128, 3, 0, + 228, 128, 2, 0, 0, 3, + 2, 0, 7, 128, 1, 0, + 228, 128, 5, 0, 228, 161, + 2, 0, 0, 3, 1, 0, 7, 128, 1, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 4, 128, 4, 0, 228, 128, - 3, 0, 228, 128, 36, 0, - 0, 2, 1, 0, 7, 128, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 2, 128, - 1, 0, 228, 128, 3, 0, - 228, 128, 11, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 25, 0, 0, 160, - 8, 0, 0, 3, 1, 0, - 1, 128, 4, 0, 228, 161, - 3, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 2, 128, - 5, 0, 228, 161, 3, 0, + 6, 0, 228, 161, 36, 0, + 0, 2, 4, 0, 7, 128, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 4, 0, 228, 128, 3, 0, + 228, 128, 36, 0, 0, 2, + 1, 0, 7, 128, 2, 0, 228, 128, 8, 0, 0, 3, - 1, 0, 4, 128, 6, 0, + 0, 0, 2, 128, 1, 0, + 228, 128, 3, 0, 228, 128, + 11, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 25, 0, 0, 160, 8, 0, + 0, 3, 1, 0, 1, 128, + 4, 0, 228, 161, 3, 0, + 228, 128, 8, 0, 0, 3, + 1, 0, 2, 128, 5, 0, 228, 161, 3, 0, 228, 128, - 13, 0, 0, 3, 2, 0, - 7, 128, 1, 0, 228, 128, - 25, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 7, 128, - 1, 0, 228, 128, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, + 8, 0, 0, 3, 1, 0, + 4, 128, 6, 0, 228, 161, + 3, 0, 228, 128, 13, 0, + 0, 3, 2, 0, 7, 128, + 1, 0, 228, 128, 25, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 7, 128, 1, 0, 228, 128, 2, 0, 228, 128, - 15, 0, 0, 2, 2, 0, - 1, 128, 0, 0, 0, 128, - 15, 0, 0, 2, 2, 0, - 2, 128, 0, 0, 85, 128, - 15, 0, 0, 2, 2, 0, - 4, 128, 0, 0, 170, 128, 5, 0, 0, 3, 0, 0, - 7, 128, 2, 0, 228, 128, - 3, 0, 255, 160, 14, 0, - 0, 2, 0, 0, 2, 128, - 0, 0, 85, 128, 5, 0, - 0, 3, 2, 0, 7, 128, - 0, 0, 85, 128, 11, 0, - 228, 160, 14, 0, 0, 2, - 0, 0, 1, 128, 0, 0, - 0, 128, 14, 0, 0, 2, + 7, 128, 0, 0, 228, 128, + 2, 0, 228, 128, 15, 0, + 0, 2, 2, 0, 1, 128, + 0, 0, 0, 128, 15, 0, + 0, 2, 2, 0, 2, 128, + 0, 0, 85, 128, 15, 0, + 0, 2, 2, 0, 4, 128, + 0, 0, 170, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 2, 0, 228, 128, 3, 0, + 255, 160, 14, 0, 0, 2, 0, 0, 2, 128, 0, 0, - 170, 128, 4, 0, 0, 4, - 0, 0, 13, 128, 0, 0, - 0, 128, 10, 0, 148, 160, - 2, 0, 148, 128, 4, 0, - 0, 4, 0, 0, 7, 128, - 0, 0, 85, 128, 12, 0, - 228, 160, 0, 0, 248, 128, - 5, 0, 0, 3, 1, 0, - 7, 224, 0, 0, 228, 128, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 23, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 14, 0, 228, 160, - 11, 0, 0, 3, 0, 0, + 85, 128, 5, 0, 0, 3, + 2, 0, 7, 128, 0, 0, + 85, 128, 11, 0, 228, 160, + 14, 0, 0, 2, 0, 0, 1, 128, 0, 0, 0, 128, - 25, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 25, 0, - 85, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 1, 0, - 85, 128, 8, 0, 228, 160, + 14, 0, 0, 2, 0, 0, + 2, 128, 0, 0, 170, 128, 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 0, 128, - 7, 0, 228, 160, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 7, 128, 1, 0, - 170, 128, 9, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 1, 0, 7, 128, - 1, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 228, 128, 2, 0, 228, 160, - 5, 0, 0, 3, 0, 0, - 7, 224, 0, 0, 228, 128, - 3, 0, 228, 144, 5, 0, - 0, 3, 0, 0, 8, 224, - 3, 0, 255, 144, 1, 0, - 255, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 21, 0, 228, 160, + 13, 128, 0, 0, 0, 128, + 10, 0, 148, 160, 2, 0, + 148, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 0, 0, + 85, 128, 12, 0, 228, 160, + 0, 0, 248, 128, 5, 0, + 0, 3, 1, 0, 7, 224, + 0, 0, 228, 128, 3, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 23, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 22, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 24, 0, + 1, 128, 0, 0, 228, 144, + 14, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 25, 0, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 25, 0, 85, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 1, 0, 85, 128, + 8, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, + 1, 0, 0, 128, 7, 0, + 228, 160, 0, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 7, 128, 1, 0, 170, 128, + 9, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 1, 0, 7, 128, 1, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 2, 0, 3, 224, - 2, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 36, 7, 0, 0, 64, 0, - 1, 0, 201, 1, 0, 0, - 89, 0, 0, 4, 70, 142, + 0, 0, 7, 128, 0, 0, + 228, 128, 1, 0, 228, 128, + 2, 0, 228, 160, 5, 0, + 0, 3, 0, 0, 7, 224, + 0, 0, 228, 128, 3, 0, + 228, 144, 5, 0, 0, 3, + 0, 0, 8, 224, 3, 0, + 255, 144, 1, 0, 255, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 21, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 22, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 24, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 2, 0, 3, 224, 2, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 36, 7, + 0, 0, 64, 0, 1, 0, + 201, 1, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 26, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 114, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 5, 0, + 0, 0, 16, 0, 0, 8, + 18, 0, 16, 0, 0, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 5, 0, 0, 0, 16, 0, - 0, 8, 18, 0, 16, 0, + 19, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 16, 0, 0, 8, 34, 0, + 0, 0, 20, 0, 0, 0, + 16, 0, 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 20, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 21, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 21, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 9, - 18, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 9, - 34, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 9, - 66, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 29, 0, 0, 10, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 2, 64, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 9, 18, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 9, 34, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 9, 66, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 10, 114, 0, + 5, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 29, 0, 0, 10, 114, 0, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 2, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 10, 114, 0, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 2, 64, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, + 0, 0, 128, 63, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 3, 0, - 0, 0, 86, 5, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 50, 0, - 0, 10, 178, 0, 16, 0, - 1, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 70, 136, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 70, 8, 16, 0, 3, 0, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 3, 0, 0, 0, + 86, 5, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 1, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 70, 130, + 178, 0, 16, 0, 1, 0, + 0, 0, 6, 0, 16, 0, + 1, 0, 0, 0, 70, 136, 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 70, 3, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 114, 0, + 6, 0, 0, 0, 70, 8, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 10, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 166, 10, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 70, 3, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 56, 0, 0, 8, 130, 32, + 70, 130, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 32, 16, 0, 0, 0, 0, 0, - 58, 16, 16, 0, 3, 0, - 0, 0, 58, 128, 32, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 56, 0, + 0, 8, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 16, + 16, 0, 3, 0, 0, 0, + 58, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 18, 0, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 1, 0, + 34, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 16, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 17, 0, 0, 8, 66, 0, - 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 9, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 17, 0, 0, 0, + 0, 0, 0, 9, 114, 0, 16, 0, 1, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 3, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 246, 15, + 1, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 2, + 50, 0, 0, 11, 114, 0, 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 68, 0, 0, 5, + 70, 2, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 3, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 3, 0, - 0, 0, 16, 0, 0, 7, - 18, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 50, 0, 0, 11, 114, 0, - 16, 0, 4, 0, 0, 0, + 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 246, 15, + 4, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 4, 0, + 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, + 16, 0, 0, 7, 34, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, - 4, 0, 0, 0, 246, 15, + 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 4, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 16, 0, 0, 7, - 34, 0, 16, 0, 3, 0, + 66, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, + 52, 0, 0, 10, 114, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 7, 66, 0, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 52, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 47, 0, - 0, 5, 114, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 0, 0, 0, 0, + 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 246, 143, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 25, 0, 0, 5, + 0, 0, 47, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 50, 0, 0, 10, 178, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 136, 32, 0, - 0, 0, 0, 0, 9, 0, - 0, 0, 70, 8, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 10, + 246, 143, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 25, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 70, 3, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, - 114, 32, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, + 114, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 17, 32, - 0, 8, 130, 32, 16, 0, - 1, 0, 0, 0, 70, 30, + 10, 0, 0, 0, 50, 0, + 0, 10, 178, 0, 16, 0, + 0, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 5, 50, 32, + 70, 136, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 70, 8, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 0, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 70, 3, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 114, 32, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 2, 0, 0, 0, 70, 16, 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 2, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 23, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 24, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 140, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 67, 79, - 76, 79, 82, 0, 171, 171, - 79, 83, 71, 78, 132, 0, + 0, 0, 0, 0, 25, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 140, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, + 15, 15, 0, 0, 116, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 110, 0, + 7, 7, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 119, 0, + 3, 3, 0, 0, 132, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 67, 79, 76, 79, + 82, 0, 171, 171, 79, 83, + 71, 78, 132, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 171 + 0, 0, 0, 0, 15, 0, + 0, 0, 104, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 12, + 0, 0, 119, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 0, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingVc.inc index 17a65302be32942a21319fc494d4cea9e34cfbaa..f8590887f74641b14c7c4507585a3b048b498673 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/BasicEffect_VSBasicVertexLightingVc.inc @@ -41,61 +41,101 @@ // vs_2_0 def c25, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 r0.x, v0, c15 - dp4 r0.y, v0, c16 - dp4 r0.z, v0, c17 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8,9,10> + +#line 57 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c15 // ::pos_ws<0> + dp4 r0.y, v0, c16 // ::pos_ws<1> + dp4 r0.z, v0, c17 // ::pos_ws<2> add r0.xyz, -r0, c13 - nrm r1.xyz, r0 + nrm r1.xyz, r0 // ::eyeVector<0,1,2> + +#line 33 add r0.xyz, r1, -c4 - nrm r2.xyz, r0 + nrm r2.xyz, r0 // ::halfVectors<0,1,2> + +#line 59 dp3 r0.x, v1, c18 dp3 r0.y, v1, c19 dp3 r0.z, v1, c20 - nrm r3.xyz, r0 - dp3 r0.x, r2, r3 + nrm r3.xyz, r0 // ::worldNormal<0,1,2> + +#line 37 + dp3 r0.x, r2, r3 // ::dotH<0> + +#line 33 add r2.xyz, r1, -c5 add r1.xyz, r1, -c6 - nrm r4.xyz, r1 - dp3 r0.z, r4, r3 - nrm r1.xyz, r2 - dp3 r0.y, r1, r3 + nrm r4.xyz, r1 // ::halfVectors<6,7,8> + +#line 37 + dp3 r0.z, r4, r3 // ::dotH<2> + +#line 33 + nrm r1.xyz, r2 // ::halfVectors<3,4,5> + +#line 37 + dp3 r0.y, r1, r3 // ::dotH<1> + +#line 42 max r0.xyz, r0, c25.x - dp3 r1.x, -c4, r3 - dp3 r1.y, -c5, r3 - dp3 r1.z, -c6, r3 - sge r2.xyz, r1, c25.x - mul r1.xyz, r1, r2 + +#line 36 + dp3 r1.x, -c4, r3 // ::dotL<0> + dp3 r1.y, -c5, r3 // ::dotL<1> + dp3 r1.z, -c6, r3 // ::dotL<2> + +#line 39 + sge r2.xyz, r1, c25.x // ::zeroL<0,1,2> + mul r1.xyz, r1, r2 // ::diffuse<0,1,2> mul r0.xyz, r0, r2 log r2.x, r0.x log r2.y, r0.y log r2.z, r0.z mul r0.xyz, r2, c3.w - exp r0.y, r0.y + exp r0.y, r0.y // ::specular<1> + +#line 47 mul r2.xyz, r0.y, c11 - exp r0.x, r0.x - exp r0.y, r0.z + +#line 42 + exp r0.x, r0.x // ::specular<0> + exp r0.y, r0.z // ::specular<2> + +#line 47 mad r0.xzw, r0.x, c10.xyyz, r2.xyyz mad r0.xyz, r0.y, c12, r0.xzww - mul oT1.xyz, r0, c3 - dp4 oPos.z, v0, c23 + mul oT1.xyz, r0, c3 // ::VSBasicVertexLightingVc<4,5,6> + +#line 63 + dp4 oPos.z, v0, c23 // ::VSBasicVertexLightingVc<10> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c14 max r0.x, r0.x, c25.x - min oT1.w, r0.x, c25.y + min oT1.w, r0.x, c25.y // ::VSBasicVertexLightingVc<7> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mul r0.xyz, r1.y, c8 mad r0.xyz, r1.x, c7, r0 mad r0.xyz, r1.z, c9, r0 - mov r1.xyz, c1 - mad r0.xyz, r0, r1, c2 - mul oT0.xyz, r0, v2 - mul oT0.w, v2.w, c1.w - dp4 r0.x, v0, c21 - dp4 r0.y, v0, c22 - dp4 r0.z, v0, c24 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z + mov r1.xyz, c1 // Parameters::DiffuseColor<0,1,2> + mad r0.xyz, r0, r1, c2 // ::result<0,1,2> + +#line 173 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mul oT0.xyz, r0, v2 // ::VSBasicVertexLightingVc<0,1,2> + mul oT0.w, v2.w, c1.w // ::VSBasicVertexLightingVc<3> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, v0, c21 // ::vout<0> + dp4 r0.y, v0, c22 // ::vout<1> + dp4 r0.z, v0, c24 // ::vout<3> + +#line 166 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\BasicEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSBasicVertexLightingVc<8,9> + mov oPos.w, r0.z // ::VSBasicVertexLightingVc<11> // approximately 62 instruction slots used vs_4_0 @@ -166,17 +206,17 @@ ret const BYTE BasicEffect_VSBasicVertexLightingVc[] = { - 68, 88, 66, 67, 92, 146, - 63, 46, 34, 123, 33, 120, - 42, 40, 45, 83, 123, 166, - 131, 218, 1, 0, 0, 0, - 204, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 226, 181, + 114, 107, 244, 208, 151, 98, + 45, 197, 123, 238, 12, 60, + 225, 221, 1, 0, 0, 0, + 76, 19, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 236, 3, 0, 0, 236, 10, - 0, 0, 96, 11, 0, 0, - 65, 111, 110, 57, 180, 3, - 0, 0, 180, 3, 0, 0, - 0, 2, 254, 255, 104, 3, + 108, 11, 0, 0, 108, 18, + 0, 0, 224, 18, 0, 0, + 65, 111, 110, 57, 52, 11, + 0, 0, 52, 11, 0, 0, + 0, 2, 254, 255, 232, 10, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -188,7 +228,327 @@ const BYTE BasicEffect_VSBasicVertexLightingVc[] = 0, 0, 0, 0, 19, 0, 7, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 223, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 1, + 0, 0, 56, 0, 0, 0, + 16, 1, 0, 0, 14, 0, + 0, 0, 56, 6, 0, 0, + 4, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 66, 97, + 115, 105, 99, 69, 102, 102, + 101, 99, 116, 46, 102, 120, + 0, 171, 40, 0, 0, 0, + 113, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 255, 255, + 132, 7, 0, 0, 0, 0, + 255, 255, 156, 7, 0, 0, + 0, 0, 255, 255, 168, 7, + 0, 0, 0, 0, 255, 255, + 180, 7, 0, 0, 57, 0, + 0, 0, 192, 7, 0, 0, + 57, 0, 0, 0, 208, 7, + 0, 0, 57, 0, 0, 0, + 224, 7, 0, 0, 58, 0, + 0, 0, 240, 7, 0, 0, + 58, 0, 0, 0, 0, 8, + 0, 0, 33, 0, 0, 0, + 12, 8, 0, 0, 33, 0, + 0, 0, 28, 8, 0, 0, + 59, 0, 0, 0, 40, 8, + 0, 0, 59, 0, 0, 0, + 56, 8, 0, 0, 59, 0, + 0, 0, 72, 8, 0, 0, + 59, 0, 0, 0, 88, 8, + 0, 0, 37, 0, 0, 0, + 100, 8, 0, 0, 33, 0, + 0, 0, 116, 8, 0, 0, + 33, 0, 0, 0, 132, 8, + 0, 0, 33, 0, 0, 0, + 148, 8, 0, 0, 37, 0, + 0, 0, 160, 8, 0, 0, + 33, 0, 0, 0, 176, 8, + 0, 0, 37, 0, 0, 0, + 188, 8, 0, 0, 42, 0, + 0, 0, 204, 8, 0, 0, + 36, 0, 0, 0, 220, 8, + 0, 0, 36, 0, 0, 0, + 236, 8, 0, 0, 36, 0, + 0, 0, 252, 8, 0, 0, + 39, 0, 0, 0, 12, 9, + 0, 0, 41, 0, 0, 0, + 28, 9, 0, 0, 42, 0, + 0, 0, 44, 9, 0, 0, + 42, 0, 0, 0, 60, 9, + 0, 0, 42, 0, 0, 0, + 72, 9, 0, 0, 42, 0, + 0, 0, 84, 9, 0, 0, + 42, 0, 0, 0, 96, 9, + 0, 0, 42, 0, 0, 0, + 112, 9, 0, 0, 47, 0, + 0, 0, 124, 9, 0, 0, + 42, 0, 0, 0, 140, 9, + 0, 0, 42, 0, 0, 0, + 152, 9, 0, 0, 47, 0, + 0, 0, 164, 9, 0, 0, + 47, 0, 0, 0, 184, 9, + 0, 0, 47, 0, 0, 0, + 204, 9, 0, 0, 63, 0, + 0, 0, 220, 9, 0, 0, + 14, 0, 1, 0, 236, 9, + 0, 0, 14, 0, 1, 0, + 252, 9, 0, 0, 14, 0, + 1, 0, 12, 10, 0, 0, + 46, 0, 0, 0, 28, 10, + 0, 0, 46, 0, 0, 0, + 44, 10, 0, 0, 46, 0, + 0, 0, 64, 10, 0, 0, + 46, 0, 0, 0, 84, 10, + 0, 0, 46, 0, 0, 0, + 96, 10, 0, 0, 173, 0, + 2, 0, 116, 10, 0, 0, + 173, 0, 2, 0, 132, 10, + 0, 0, 63, 0, 0, 0, + 148, 10, 0, 0, 63, 0, + 0, 0, 164, 10, 0, 0, + 63, 0, 0, 0, 180, 10, + 0, 0, 166, 0, 2, 0, + 196, 10, 0, 0, 166, 0, + 2, 0, 216, 10, 0, 0, + 80, 97, 114, 97, 109, 101, + 116, 101, 114, 115, 0, 68, + 105, 102, 102, 117, 115, 101, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 47, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 86, 83, + 66, 97, 115, 105, 99, 86, + 101, 114, 116, 101, 120, 76, + 105, 103, 104, 116, 105, 110, + 103, 86, 99, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 80, 83, 0, + 28, 3, 0, 0, 36, 3, + 0, 0, 52, 3, 0, 0, + 36, 3, 0, 0, 61, 3, + 0, 0, 36, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 3, 0, + 72, 3, 0, 0, 39, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 40, 0, + 0, 0, 255, 255, 255, 255, + 10, 0, 255, 255, 43, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 49, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 50, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 54, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 55, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 11, 0, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 27, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 111, + 116, 72, 0, 171, 171, 171, + 15, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 19, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 21, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 23, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 24, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 25, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 18, 0, 0, 0, 6, 0, + 7, 0, 8, 0, 255, 255, + 20, 0, 0, 0, 3, 0, + 4, 0, 5, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 4, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 5, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 6, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 114, 101, 115, 117, + 108, 116, 0, 171, 28, 3, + 0, 0, 204, 3, 0, 0, + 52, 3, 0, 0, 204, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 6, 0, 1, 0, + 2, 0, 204, 4, 0, 0, + 48, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 33, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 35, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 36, 0, 0, 0, 255, 255, + 2, 0, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 67, 111, 108, 111, + 114, 0, 171, 171, 44, 5, + 0, 0, 36, 3, 0, 0, + 53, 5, 0, 0, 204, 3, + 0, 0, 60, 5, 0, 0, + 36, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 11, 0, + 1, 0, 3, 0, 68, 5, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 9, 0, + 10, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 149, 5, 0, 0, 36, 3, + 0, 0, 28, 3, 0, 0, + 36, 3, 0, 0, 52, 3, + 0, 0, 204, 3, 0, 0, + 156, 5, 0, 0, 168, 5, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 184, 5, 0, 0, + 51, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 52, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 53, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 14, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 26, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 208, 2, 0, 0, + 219, 2, 0, 0, 232, 2, + 0, 0, 1, 0, 0, 0, + 248, 2, 0, 0, 0, 0, + 0, 0, 4, 3, 0, 0, + 96, 3, 0, 0, 7, 0, + 0, 0, 112, 3, 0, 0, + 0, 0, 0, 0, 196, 3, + 0, 0, 204, 3, 0, 0, + 1, 0, 0, 0, 220, 3, + 0, 0, 0, 0, 0, 0, + 232, 3, 0, 0, 204, 3, + 0, 0, 3, 0, 0, 0, + 240, 3, 0, 0, 0, 0, + 0, 0, 20, 4, 0, 0, + 204, 3, 0, 0, 3, 0, + 0, 0, 28, 4, 0, 0, + 0, 0, 0, 0, 64, 4, + 0, 0, 204, 3, 0, 0, + 1, 0, 0, 0, 76, 4, + 0, 0, 0, 0, 0, 0, + 88, 4, 0, 0, 100, 4, + 0, 0, 3, 0, 0, 0, + 116, 4, 0, 0, 0, 0, + 0, 0, 152, 4, 0, 0, + 36, 3, 0, 0, 3, 0, + 0, 0, 160, 4, 0, 0, + 0, 0, 0, 0, 196, 4, + 0, 0, 220, 4, 0, 0, + 1, 0, 0, 0, 236, 4, + 0, 0, 0, 0, 0, 0, + 248, 4, 0, 0, 204, 3, + 0, 0, 3, 0, 0, 0, + 4, 5, 0, 0, 4, 3, + 0, 0, 40, 5, 0, 0, + 92, 5, 0, 0, 3, 0, + 0, 0, 108, 5, 0, 0, + 0, 0, 0, 0, 144, 5, + 0, 0, 216, 5, 0, 0, + 3, 0, 0, 0, 232, 5, + 0, 0, 0, 0, 0, 0, + 12, 6, 0, 0, 204, 3, + 0, 0, 1, 0, 0, 0, + 24, 6, 0, 0, 0, 0, + 0, 0, 36, 6, 0, 0, + 204, 3, 0, 0, 1, 0, + 0, 0, 44, 6, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 25, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main.inc index 25b3781649513f8fb58f054c77db404026bcdab5..23ec2d87a49f8b65426beb99227506fa8aabb806 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main.inc @@ -49,30 +49,46 @@ // vs_2_0 def c12, 1, 0, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dp4 oPos.z, v0, c7 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12> + +#line 129 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" + dp4 oPos.z, v0, c7 // ::main<2> mad r0.xyz, v3.xyxw, c12.xxyw, c12.yyxw - dp3 oT1.x, r0, c9.xyww - dp3 oT1.y, r0, c10.xyww - dp3 oT2.x, v1, c2 - dp3 oT2.y, v1, c3 - dp3 oT2.z, v1, c4 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c4 - add oT4.xyz, -r0, c11 - mov oT3.xyz, r0 - dp4 r0.x, v0, c5 - dp4 r0.y, v0, c6 - dp4 r0.z, v0, c8 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT5, v2 - mov oT6.xyz, v1 + dp3 oT1.x, r0, c9.xyww // ::main<8> + dp3 oT1.y, r0, c10.xyww // ::main<9> + dp3 oT2.x, v1, c2 // ::main<10> + dp3 oT2.y, v1, c3 // ::main<11> + dp3 oT2.z, v1, c4 // ::main<12> + +#line 126 + dp4 r0.x, v0, c2 // ::wp<0> + dp4 r0.y, v0, c3 // ::wp<1> + dp4 r0.z, v0, c4 // ::wp<2> + +#line 134 + add oT4.xyz, -r0, c11 // ::main<16,17,18> + +#line 126 + mov oT3.xyz, r0 // ::main<13,14,15> + +#line 129 + dp4 r0.x, v0, c5 // ::result<0> + dp4 r0.y, v0, c6 // ::result<1> + dp4 r0.z, v0, c8 // ::result<3> + +#line 122 + mad oPos.xy, r0.z, c0, r0 // ::main<0,1> + mov oPos.w, r0.z // ::main<3> + +#line 130 + mov oT0, c1 // ::main<4,5,6,7> + +#line 135 + mov oT5, v2 // ::main<19,20,21,22> + mov oT6.xyz, v1 // ::main<23,24,25> // approximately 20 instruction slots used vs_4_0 @@ -116,17 +132,17 @@ ret const BYTE DGSLEffect_main[] = { - 68, 88, 66, 67, 186, 106, - 164, 207, 220, 89, 167, 54, - 144, 180, 62, 36, 5, 95, - 42, 136, 1, 0, 0, 0, - 144, 6, 0, 0, 4, 0, + 68, 88, 66, 67, 182, 249, + 107, 54, 68, 156, 189, 16, + 219, 123, 26, 176, 4, 68, + 179, 66, 1, 0, 0, 0, + 124, 10, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 32, 2, 0, 0, 16, 5, - 0, 0, 164, 5, 0, 0, - 65, 111, 110, 57, 232, 1, - 0, 0, 232, 1, 0, 0, - 0, 2, 254, 255, 132, 1, + 12, 6, 0, 0, 252, 8, + 0, 0, 144, 9, 0, 0, + 65, 111, 110, 57, 212, 5, + 0, 0, 212, 5, 0, 0, + 0, 2, 254, 255, 112, 5, 0, 0, 100, 0, 0, 0, 5, 0, 36, 0, 0, 0, 96, 0, 0, 0, 96, 0, @@ -142,258 +158,426 @@ const BYTE DGSLEffect_main[] = 0, 0, 2, 0, 20, 0, 1, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 12, 0, 15, 160, - 0, 0, 128, 63, 0, 0, + 0, 2, 254, 255, 254, 255, + 250, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 188, 3, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 25, 0, 0, 0, + 120, 0, 0, 0, 4, 0, + 0, 0, 108, 3, 0, 0, + 64, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 240, 3, + 0, 0, 0, 0, 255, 255, + 8, 4, 0, 0, 0, 0, + 255, 255, 20, 4, 0, 0, + 0, 0, 255, 255, 32, 4, + 0, 0, 0, 0, 255, 255, + 44, 4, 0, 0, 129, 0, + 0, 0, 56, 4, 0, 0, + 131, 0, 0, 0, 72, 4, + 0, 0, 131, 0, 0, 0, + 92, 4, 0, 0, 131, 0, + 0, 0, 108, 4, 0, 0, + 132, 0, 0, 0, 124, 4, + 0, 0, 132, 0, 0, 0, + 140, 4, 0, 0, 132, 0, + 0, 0, 156, 4, 0, 0, + 126, 0, 0, 0, 172, 4, + 0, 0, 126, 0, 0, 0, + 188, 4, 0, 0, 126, 0, + 0, 0, 204, 4, 0, 0, + 134, 0, 0, 0, 220, 4, + 0, 0, 126, 0, 0, 0, + 236, 4, 0, 0, 129, 0, + 0, 0, 248, 4, 0, 0, + 129, 0, 0, 0, 8, 5, + 0, 0, 129, 0, 0, 0, + 24, 5, 0, 0, 122, 0, + 0, 0, 40, 5, 0, 0, + 122, 0, 0, 0, 60, 5, + 0, 0, 130, 0, 0, 0, + 72, 5, 0, 0, 135, 0, + 0, 0, 84, 5, 0, 0, + 136, 0, 0, 0, 96, 5, + 0, 0, 109, 97, 105, 110, + 0, 112, 111, 115, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 7, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 7, 128, 3, 0, - 196, 144, 12, 0, 208, 160, - 12, 0, 197, 160, 8, 0, - 0, 3, 1, 0, 1, 224, - 0, 0, 228, 128, 9, 0, + 100, 105, 102, 102, 117, 115, + 101, 0, 117, 118, 0, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 80, 111, 115, 0, 116, + 111, 69, 121, 101, 0, 116, + 97, 110, 103, 101, 110, 116, + 0, 110, 111, 114, 109, 97, + 108, 0, 171, 171, 69, 1, + 0, 0, 76, 1, 0, 0, + 92, 1, 0, 0, 76, 1, + 0, 0, 100, 1, 0, 0, + 104, 1, 0, 0, 120, 1, + 0, 0, 132, 1, 0, 0, + 148, 1, 0, 0, 132, 1, + 0, 0, 157, 1, 0, 0, + 132, 1, 0, 0, 163, 1, + 0, 0, 76, 1, 0, 0, + 171, 1, 0, 0, 132, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 26, 0, 1, 0, + 8, 0, 180, 1, 0, 0, + 5, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 7, 0, 0, 0, 8, 0, + 255, 255, 255, 255, 255, 255, + 8, 0, 0, 0, 255, 255, + 9, 0, 255, 255, 255, 255, + 9, 0, 0, 0, 10, 0, + 255, 255, 255, 255, 255, 255, + 10, 0, 0, 0, 255, 255, + 11, 0, 255, 255, 255, 255, + 11, 0, 0, 0, 255, 255, + 255, 255, 12, 0, 255, 255, + 15, 0, 0, 0, 16, 0, + 17, 0, 18, 0, 255, 255, + 16, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 255, 255, + 20, 0, 0, 0, 0, 0, + 1, 0, 255, 255, 255, 255, + 21, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 22, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 23, 0, 0, 0, 19, 0, + 20, 0, 21, 0, 22, 0, + 24, 0, 0, 0, 23, 0, + 24, 0, 25, 0, 255, 255, + 114, 101, 115, 117, 108, 116, + 0, 171, 5, 0, 0, 0, + 1, 0, 26, 0, 1, 0, + 8, 0, 180, 1, 0, 0, + 17, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 18, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 19, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 118, 101, 114, 116, 101, 120, + 0, 171, 69, 1, 0, 0, + 76, 1, 0, 0, 171, 1, + 0, 0, 132, 1, 0, 0, + 163, 1, 0, 0, 76, 1, + 0, 0, 100, 1, 0, 0, + 104, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 13, 0, + 1, 0, 4, 0, 228, 2, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 9, 0, + 10, 0, 4, 0, 0, 0, + 11, 0, 12, 0, 255, 255, + 255, 255, 119, 112, 0, 171, + 12, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 14, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 0, 0, 0, 0, 64, 1, + 0, 0, 244, 1, 0, 0, + 13, 0, 0, 0, 4, 2, + 0, 0, 0, 0, 0, 0, + 160, 2, 0, 0, 168, 2, + 0, 0, 3, 0, 0, 0, + 184, 2, 0, 0, 64, 1, + 0, 0, 220, 2, 0, 0, + 4, 3, 0, 0, 4, 0, + 0, 0, 20, 3, 0, 0, + 0, 0, 0, 0, 68, 3, + 0, 0, 132, 1, 0, 0, + 3, 0, 0, 0, 72, 3, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 12, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 7, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, + 3, 0, 196, 144, 12, 0, + 208, 160, 12, 0, 197, 160, + 8, 0, 0, 3, 1, 0, + 1, 224, 0, 0, 228, 128, + 9, 0, 244, 160, 8, 0, + 0, 3, 1, 0, 2, 224, + 0, 0, 228, 128, 10, 0, 244, 160, 8, 0, 0, 3, - 1, 0, 2, 224, 0, 0, - 228, 128, 10, 0, 244, 160, + 2, 0, 1, 224, 1, 0, + 228, 144, 2, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 1, 224, 1, 0, 228, 144, - 2, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 2, 224, - 1, 0, 228, 144, 3, 0, - 228, 160, 8, 0, 0, 3, - 2, 0, 4, 224, 1, 0, - 228, 144, 4, 0, 228, 160, + 2, 224, 1, 0, 228, 144, + 3, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 4, 224, + 1, 0, 228, 144, 4, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 228, 144, 2, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 228, 144, + 3, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 228, 144, 4, 0, + 228, 160, 2, 0, 0, 3, + 4, 0, 7, 224, 0, 0, + 228, 129, 11, 0, 228, 160, + 1, 0, 0, 2, 3, 0, + 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, 228, 144, - 2, 0, 228, 160, 9, 0, + 5, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, - 0, 0, 228, 144, 3, 0, + 0, 0, 228, 144, 6, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, 0, 0, - 228, 144, 4, 0, 228, 160, - 2, 0, 0, 3, 4, 0, - 7, 224, 0, 0, 228, 129, - 11, 0, 228, 160, 1, 0, - 0, 2, 3, 0, 7, 224, - 0, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 5, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 6, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 8, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 170, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 192, 0, 0, 170, 128, - 1, 0, 0, 2, 0, 0, - 15, 224, 1, 0, 228, 160, - 1, 0, 0, 2, 5, 0, - 15, 224, 2, 0, 228, 144, - 1, 0, 0, 2, 6, 0, - 7, 224, 1, 0, 228, 144, - 255, 255, 0, 0, 83, 72, - 68, 82, 232, 2, 0, 0, - 64, 0, 1, 0, 186, 0, + 228, 144, 8, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 1, 0, + 228, 160, 1, 0, 0, 2, + 5, 0, 15, 224, 2, 0, + 228, 144, 1, 0, 0, 2, + 6, 0, 7, 224, 1, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 232, 2, + 0, 0, 64, 0, 1, 0, + 186, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 2, 0, 0, 0, - 21, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 3, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 4, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 5, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 6, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 7, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 21, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 114, 16, + 16, 0, 1, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 2, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 3, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 4, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 5, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 6, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 7, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 17, 0, 0, 8, 18, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 5, 0, + 2, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 0, 0, + 34, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 6, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, + 5, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 5, 50, 0, + 0, 0, 6, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 3, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 7, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 54, 0, 0, 5, - 66, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 16, 0, - 0, 8, 18, 32, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 131, 32, 0, 2, 0, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 8, 34, 32, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 3, 0, 0, 0, 54, 0, + 0, 5, 66, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 16, 0, 0, 8, 18, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 131, 32, 0, - 2, 0, 0, 0, 17, 0, + 2, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 8, - 18, 32, 16, 0, 3, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 130, + 34, 32, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 131, 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 8, 34, 32, 16, 0, + 17, 0, 0, 0, 16, 0, + 0, 8, 18, 32, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 66, 32, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, + 2, 0, 0, 0, 1, 0, + 0, 0, 16, 0, 0, 8, + 66, 32, 16, 0, 3, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 130, 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 2, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 17, 0, 0, 8, 66, 0, + 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 2, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 17, 0, 0, 8, + 66, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 114, 32, + 16, 0, 5, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 20, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 16, 0, 2, 0, 0, 0, 54, 0, 0, 5, - 114, 32, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, + 114, 32, 16, 0, 7, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 140, 0, 0, 0, 4, 0, + 0, 0, 8, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 114, 32, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 2, 0, 0, 0, - 20, 0, 0, 0, 54, 0, - 0, 5, 242, 32, 16, 0, - 6, 0, 0, 0, 70, 30, - 16, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 7, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 140, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 123, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 15, 15, 0, 0, + 131, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 3, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 65, 78, 71, 69, + 78, 84, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 79, 83, 71, 78, 228, 0, + 0, 0, 8, 0, 0, 0, + 8, 0, 0, 0, 200, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 116, 0, + 15, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 123, 0, + 15, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 15, 15, 0, 0, 131, 0, - 0, 0, 0, 0, 0, 0, + 3, 12, 0, 0, 218, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 3, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 65, 78, 71, 69, 78, 84, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 79, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, + 7, 8, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 7, 8, 0, 0, 218, 0, 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 8, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171 + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 7, 8, 0, 0, 218, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 7, 0, 0, 0, + 7, 8, 0, 0, 83, 86, + 95, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1Bones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1Bones.inc index e866958eab7baf4f5fc3285477260f84ed3a42e4..9ba5a332b33e72d1fa8c1f8ec831d5e7a01f05a5 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1Bones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1Bones.inc @@ -52,47 +52,75 @@ // vs_2_0 def c228, 3, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dcl_texcoord5 v5 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12> + dcl_texcoord4 v4 // vertex<13,14,15,16> + dcl_texcoord5 v5 // vertex<17,18,19,20> + +#line 97 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" mul r0.x, v4.x, c228.x mova a0.x, r0.x - mul r0, v5.x, c0[a0.x] - dp3 oT5.x, v2, r0 - mul r1, v5.x, c1[a0.x] - mul r2, v5.x, c2[a0.x] - dp3 oT5.y, v2, r1 - dp3 oT5.z, v2, r2 - dp4 r3.x, v0, r0 - dp3 r0.x, v1, r0 - dp4 r3.y, v0, r1 - dp3 r0.y, v1, r1 - dp4 r3.z, v0, r2 - dp3 r0.z, v1, r2 + mul r0, v5.x, c0[a0.x] // ::skinning<0,3,6,9> + +#line 102 + dp3 oT5.x, v2, r0 // ::main1Bones<19> + +#line 97 + mul r1, v5.x, c1[a0.x] // ::skinning<1,4,7,10> + mul r2, v5.x, c2[a0.x] // ::skinning<2,5,8,11> + +#line 102 + dp3 oT5.y, v2, r1 // ::main1Bones<20> + dp3 oT5.z, v2, r2 // ::main1Bones<21> + dp4 r3.x, v0, r0 // Skin::vertex<0> + dp3 r0.x, v1, r0 // Skin::vertex<4> + dp4 r3.y, v0, r1 // Skin::vertex<1> + dp3 r0.y, v1, r1 // Skin::vertex<5> + dp4 r3.z, v0, r2 // Skin::vertex<2> + dp3 r0.z, v1, r2 // Skin::vertex<6> + +#line 170 mov r3.w, v0.w - dp4 oPos.z, r3, c223 + +#line 173 + dp4 oPos.z, r3, c223 // ::main1Bones<2> mad r1.xyz, v3.xyxw, c228.yyzw, c228.zzyw - dp3 oT1.x, r1, c225.xyww - dp3 oT1.y, r1, c226.xyww - dp3 oT2.x, r0, c218 - dp3 oT2.y, r0, c219 - dp3 oT2.z, r0, c220 - mov oT6.xyz, r0 - dp4 r0.x, r3, c218 - dp4 r0.y, r3, c219 - dp4 r0.z, r3, c220 - add oT4.xyz, -r0, c227 - mov oT3.xyz, r0 - dp4 r0.x, r3, c221 - dp4 r0.y, r3, c222 - dp4 r0.z, r3, c224 - mad oPos.xy, r0.z, c216, r0 - mov oPos.w, r0.z - mov oT0, c217 - mov oT5.w, v2.w + dp3 oT1.x, r1, c225.xyww // ::main1Bones<8> + dp3 oT1.y, r1, c226.xyww // ::main1Bones<9> + dp3 oT2.x, r0, c218 // ::main1Bones<10> + dp3 oT2.y, r0, c219 // ::main1Bones<11> + dp3 oT2.z, r0, c220 // ::main1Bones<12> + +#line 101 + mov oT6.xyz, r0 // ::main1Bones<23,24,25> + +#line 170 + dp4 r0.x, r3, c218 // ::wp<0> + dp4 r0.y, r3, c219 // ::wp<1> + dp4 r0.z, r3, c220 // ::wp<2> + +#line 178 + add oT4.xyz, -r0, c227 // ::main1Bones<16,17,18> + +#line 170 + mov oT3.xyz, r0 // ::main1Bones<13,14,15> + +#line 173 + dp4 r0.x, r3, c221 // ::result<0> + dp4 r0.y, r3, c222 // ::result<1> + dp4 r0.z, r3, c224 // ::result<3> + +#line 164 + mad oPos.xy, r0.z, c216, r0 // ::main1Bones<0,1> + mov oPos.w, r0.z // ::main1Bones<3> + +#line 174 + mov oT0, c217 // ::main1Bones<4,5,6,7> + +#line 102 + mov oT5.w, v2.w // ::main1Bones<22> // approximately 35 instruction slots used vs_4_0 @@ -153,17 +181,17 @@ ret const BYTE DGSLEffect_main1Bones[] = { - 68, 88, 66, 67, 197, 121, - 50, 131, 90, 182, 119, 8, - 10, 66, 229, 37, 38, 24, - 170, 137, 1, 0, 0, 0, - 192, 9, 0, 0, 4, 0, + 68, 88, 66, 67, 33, 52, + 28, 59, 16, 79, 211, 114, + 159, 203, 173, 27, 152, 183, + 209, 184, 1, 0, 0, 0, + 100, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 56, 3, 0, 0, 244, 7, - 0, 0, 212, 8, 0, 0, - 65, 111, 110, 57, 0, 3, - 0, 0, 0, 3, 0, 0, - 0, 2, 254, 255, 144, 2, + 220, 8, 0, 0, 152, 13, + 0, 0, 120, 14, 0, 0, + 65, 111, 110, 57, 164, 8, + 0, 0, 164, 8, 0, 0, + 0, 2, 254, 255, 52, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -181,392 +209,633 @@ const BYTE DGSLEffect_main1Bones[] = 0, 0, 2, 0, 20, 0, 1, 0, 227, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 228, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 5, 128, - 5, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 1, 128, - 4, 0, 0, 144, 228, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 1, 176, 0, 0, - 0, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 5, 0, - 0, 144, 0, 32, 228, 160, + 0, 2, 254, 255, 254, 255, + 104, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 116, 5, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 42, 0, 0, 0, + 120, 0, 0, 0, 6, 0, + 0, 0, 252, 4, 0, 0, + 200, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 168, 5, + 0, 0, 0, 0, 255, 255, + 192, 5, 0, 0, 0, 0, + 255, 255, 204, 5, 0, 0, + 0, 0, 255, 255, 216, 5, + 0, 0, 0, 0, 255, 255, + 228, 5, 0, 0, 0, 0, + 255, 255, 240, 5, 0, 0, + 0, 0, 255, 255, 252, 5, + 0, 0, 97, 0, 0, 0, + 8, 6, 0, 0, 97, 0, + 0, 0, 24, 6, 0, 0, + 97, 0, 0, 0, 36, 6, + 0, 0, 102, 0, 0, 0, + 56, 6, 0, 0, 97, 0, + 0, 0, 72, 6, 0, 0, + 97, 0, 0, 0, 92, 6, + 0, 0, 102, 0, 0, 0, + 112, 6, 0, 0, 102, 0, + 0, 0, 128, 6, 0, 0, + 100, 0, 0, 0, 144, 6, + 0, 0, 101, 0, 0, 0, + 160, 6, 0, 0, 100, 0, + 0, 0, 176, 6, 0, 0, + 101, 0, 0, 0, 192, 6, + 0, 0, 100, 0, 0, 0, + 208, 6, 0, 0, 101, 0, + 0, 0, 224, 6, 0, 0, + 170, 0, 0, 0, 240, 6, + 0, 0, 173, 0, 0, 0, + 252, 6, 0, 0, 175, 0, + 0, 0, 12, 7, 0, 0, + 175, 0, 0, 0, 32, 7, + 0, 0, 175, 0, 0, 0, + 48, 7, 0, 0, 176, 0, + 0, 0, 64, 7, 0, 0, + 176, 0, 0, 0, 80, 7, + 0, 0, 176, 0, 0, 0, + 96, 7, 0, 0, 101, 0, + 0, 0, 112, 7, 0, 0, + 170, 0, 0, 0, 124, 7, + 0, 0, 170, 0, 0, 0, + 140, 7, 0, 0, 170, 0, + 0, 0, 156, 7, 0, 0, + 178, 0, 0, 0, 172, 7, + 0, 0, 170, 0, 0, 0, + 188, 7, 0, 0, 173, 0, + 0, 0, 200, 7, 0, 0, + 173, 0, 0, 0, 216, 7, + 0, 0, 173, 0, 0, 0, + 232, 7, 0, 0, 164, 0, + 0, 0, 248, 7, 0, 0, + 164, 0, 0, 0, 12, 8, + 0, 0, 174, 0, 0, 0, + 24, 8, 0, 0, 102, 0, + 0, 0, 36, 8, 0, 0, + 109, 97, 105, 110, 49, 66, + 111, 110, 101, 115, 0, 112, + 111, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 211, 1, 0, 0, 216, 1, + 0, 0, 232, 1, 0, 0, + 216, 1, 0, 0, 240, 1, + 0, 0, 244, 1, 0, 0, + 4, 2, 0, 0, 16, 2, + 0, 0, 32, 2, 0, 0, + 16, 2, 0, 0, 41, 2, + 0, 0, 16, 2, 0, 0, + 47, 2, 0, 0, 216, 1, + 0, 0, 55, 2, 0, 0, + 16, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 64, 2, + 0, 0, 10, 0, 0, 0, + 19, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 0, 0, + 255, 255, 20, 0, 255, 255, + 255, 255, 14, 0, 0, 0, + 255, 255, 255, 255, 21, 0, + 255, 255, 22, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 24, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 25, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 26, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 27, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 28, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 29, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 33, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 34, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 38, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 39, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 40, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 41, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 64, 2, + 0, 0, 35, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 36, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 37, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 11, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 12, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 83, 107, 105, 110, 0, 118, + 101, 114, 116, 101, 120, 0, + 98, 111, 110, 101, 73, 110, + 100, 105, 99, 101, 115, 0, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 98, 108, + 101, 110, 100, 87, 101, 105, + 103, 104, 116, 115, 0, 171, + 171, 171, 211, 1, 0, 0, + 216, 1, 0, 0, 55, 2, + 0, 0, 16, 2, 0, 0, + 47, 2, 0, 0, 216, 1, + 0, 0, 240, 1, 0, 0, + 244, 1, 0, 0, 216, 3, + 0, 0, 228, 3, 0, 0, + 244, 3, 0, 0, 216, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 21, 0, 1, 0, + 6, 0, 4, 4, 0, 0, + 15, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 16, 0, 0, 0, 4, 0, + 255, 255, 255, 255, 255, 255, + 17, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 18, 0, 0, 0, 255, 255, + 5, 0, 255, 255, 255, 255, + 19, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 20, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 255, 255, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 9, 0, 10, 0, + 4, 0, 0, 0, 11, 0, + 12, 0, 255, 255, 255, 255, + 5, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 16, 0, + 6, 0, 0, 0, 17, 0, + 18, 0, 19, 0, 20, 0, + 119, 112, 0, 171, 30, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 31, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 32, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 0, 0, + 0, 0, 200, 1, 0, 0, + 128, 2, 0, 0, 16, 0, + 0, 0, 144, 2, 0, 0, + 0, 0, 0, 0, 80, 3, + 0, 0, 88, 3, 0, 0, + 3, 0, 0, 0, 104, 3, + 0, 0, 0, 0, 0, 0, + 140, 3, 0, 0, 152, 3, + 0, 0, 3, 0, 0, 0, + 168, 3, 0, 0, 204, 3, + 0, 0, 209, 3, 0, 0, + 52, 4, 0, 0, 6, 0, + 0, 0, 68, 4, 0, 0, + 200, 1, 0, 0, 209, 3, + 0, 0, 52, 4, 0, 0, + 6, 0, 0, 0, 140, 4, + 0, 0, 0, 0, 0, 0, + 212, 4, 0, 0, 16, 2, + 0, 0, 3, 0, 0, 0, + 216, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 228, 0, 15, 160, 0, 0, + 64, 64, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 3, 128, 3, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 4, 128, 4, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 5, 128, 5, 0, + 15, 144, 5, 0, 0, 3, + 0, 0, 1, 128, 4, 0, + 0, 144, 228, 0, 0, 160, + 46, 0, 0, 2, 0, 0, + 1, 176, 0, 0, 0, 128, + 5, 0, 0, 4, 0, 0, + 15, 128, 5, 0, 0, 144, + 0, 32, 228, 160, 0, 0, + 0, 176, 8, 0, 0, 3, + 5, 0, 1, 224, 2, 0, + 228, 144, 0, 0, 228, 128, + 5, 0, 0, 4, 1, 0, + 15, 128, 5, 0, 0, 144, + 1, 32, 228, 160, 0, 0, + 0, 176, 5, 0, 0, 4, + 2, 0, 15, 128, 5, 0, + 0, 144, 2, 32, 228, 160, 0, 0, 0, 176, 8, 0, - 0, 3, 5, 0, 1, 224, - 2, 0, 228, 144, 0, 0, - 228, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 5, 0, - 0, 144, 1, 32, 228, 160, - 0, 0, 0, 176, 5, 0, - 0, 4, 2, 0, 15, 128, - 5, 0, 0, 144, 2, 32, - 228, 160, 0, 0, 0, 176, - 8, 0, 0, 3, 5, 0, - 2, 224, 2, 0, 228, 144, - 1, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 4, 224, - 2, 0, 228, 144, 2, 0, + 0, 3, 5, 0, 2, 224, + 2, 0, 228, 144, 1, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 4, 224, 2, 0, + 228, 144, 2, 0, 228, 128, + 9, 0, 0, 3, 3, 0, + 1, 128, 0, 0, 228, 144, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 144, 0, 0, 228, 128, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, + 3, 0, 2, 128, 0, 0, + 228, 144, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 3, 0, 2, 128, - 0, 0, 228, 144, 1, 0, + 2, 128, 1, 0, 228, 144, + 1, 0, 228, 128, 9, 0, + 0, 3, 3, 0, 4, 128, + 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 1, 0, 228, 128, - 9, 0, 0, 3, 3, 0, - 4, 128, 0, 0, 228, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 3, 0, - 228, 128, 223, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 7, 128, 3, 0, 196, 144, - 228, 0, 229, 160, 228, 0, - 218, 160, 8, 0, 0, 3, - 1, 0, 1, 224, 1, 0, - 228, 128, 225, 0, 244, 160, + 0, 0, 4, 128, 1, 0, + 228, 144, 2, 0, 228, 128, + 1, 0, 0, 2, 3, 0, + 8, 128, 0, 0, 255, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 3, 0, 228, 128, + 223, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 3, 0, 196, 144, 228, 0, + 229, 160, 228, 0, 218, 160, 8, 0, 0, 3, 1, 0, - 2, 224, 1, 0, 228, 128, - 226, 0, 244, 160, 8, 0, - 0, 3, 2, 0, 1, 224, - 0, 0, 228, 128, 218, 0, - 228, 160, 8, 0, 0, 3, - 2, 0, 2, 224, 0, 0, - 228, 128, 219, 0, 228, 160, + 1, 224, 1, 0, 228, 128, + 225, 0, 244, 160, 8, 0, + 0, 3, 1, 0, 2, 224, + 1, 0, 228, 128, 226, 0, + 244, 160, 8, 0, 0, 3, + 2, 0, 1, 224, 0, 0, + 228, 128, 218, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 4, 224, 0, 0, 228, 128, - 220, 0, 228, 160, 1, 0, - 0, 2, 6, 0, 7, 224, - 0, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 1, 128, - 3, 0, 228, 128, 218, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 3, 0, - 228, 128, 219, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 128, 3, 0, 228, 128, - 220, 0, 228, 160, 2, 0, - 0, 3, 4, 0, 7, 224, - 0, 0, 228, 129, 227, 0, + 2, 224, 0, 0, 228, 128, + 219, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 4, 224, + 0, 0, 228, 128, 220, 0, 228, 160, 1, 0, 0, 2, - 3, 0, 7, 224, 0, 0, + 6, 0, 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 3, 0, - 228, 128, 221, 0, 228, 160, + 228, 128, 218, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 3, 0, 228, 128, - 222, 0, 228, 160, 9, 0, + 219, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 3, 0, 228, 128, 224, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 216, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 217, 0, 228, 160, 1, 0, - 0, 2, 5, 0, 8, 224, - 2, 0, 255, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 180, 4, 0, 0, 64, 0, - 1, 0, 45, 1, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 89, 0, + 3, 0, 228, 128, 220, 0, + 228, 160, 2, 0, 0, 3, + 4, 0, 7, 224, 0, 0, + 228, 129, 227, 0, 228, 160, + 1, 0, 0, 2, 3, 0, + 7, 224, 0, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 1, 128, 3, 0, 228, 128, + 221, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 3, 0, 228, 128, 222, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 3, 0, + 228, 128, 224, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 216, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 217, 0, + 228, 160, 1, 0, 0, 2, + 5, 0, 8, 224, 2, 0, + 255, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 180, 4, + 0, 0, 64, 0, 1, 0, + 45, 1, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 2, 0, 0, 0, 21, 0, - 0, 0, 89, 8, 0, 4, - 70, 142, 32, 0, 4, 0, - 0, 0, 216, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 2, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 18, 16, - 16, 0, 4, 0, 0, 0, - 95, 0, 0, 3, 18, 16, - 16, 0, 5, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 4, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 5, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 6, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 7, 0, 0, 0, 104, 0, - 0, 2, 5, 0, 0, 0, - 38, 0, 0, 8, 0, 208, - 0, 0, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 16, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 3, 0, - 0, 0, 56, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 6, 16, 16, 0, - 5, 0, 0, 0, 70, 142, - 32, 4, 4, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 0, 0, 0, 2, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 2, 0, + 0, 0, 21, 0, 0, 0, + 89, 8, 0, 4, 70, 142, + 32, 0, 4, 0, 0, 0, + 216, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 3, 0, 0, 0, 95, 0, + 0, 3, 18, 16, 16, 0, + 4, 0, 0, 0, 95, 0, + 0, 3, 18, 16, 16, 0, + 5, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 4, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 5, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 6, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 7, 0, + 0, 0, 104, 0, 0, 2, + 5, 0, 0, 0, 38, 0, + 0, 8, 0, 208, 0, 0, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 16, 16, 0, + 4, 0, 0, 0, 1, 64, + 0, 0, 3, 0, 0, 0, + 56, 0, 0, 9, 242, 0, 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 242, 0, - 16, 0, 3, 0, 0, 0, 6, 16, 16, 0, 5, 0, - 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, + 0, 0, 70, 142, 32, 4, + 4, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 17, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 56, 0, 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 6, 16, + 3, 0, 0, 0, 6, 16, 16, 0, 5, 0, 0, 0, 70, 142, 32, 6, 4, 0, - 0, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 17, 0, 0, 7, - 34, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 17, 0, 0, 7, 66, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 5, 0, 0, 0, 70, 142, + 32, 6, 4, 0, 0, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 17, 0, 0, 7, 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 16, + 3, 0, 0, 0, 17, 0, + 0, 7, 66, 0, 16, 0, + 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, + 70, 14, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 2, 0, + 0, 0, 58, 16, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 4, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 4, 0, + 2, 0, 0, 0, 5, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 0, 0, + 66, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 6, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 17, 0, 0, 8, 130, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 50, 0, + 16, 0, 4, 0, 0, 0, + 70, 16, 16, 0, 3, 0, 0, 0, 54, 0, 0, 5, - 50, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 3, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 16, 0, 0, 8, 18, 32, + 66, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 16, 0, + 0, 8, 18, 32, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 70, 131, 32, 0, 2, 0, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 131, 32, 0, - 2, 0, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 8, - 34, 32, 16, 0, 2, 0, + 2, 0, 0, 0, 17, 0, + 0, 0, 16, 0, 0, 7, + 18, 0, 16, 0, 4, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 18, 32, + 16, 0, 6, 0, 0, 0, + 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 131, - 32, 0, 2, 0, 0, 0, - 17, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 16, 0, 0, 7, - 18, 32, 16, 0, 6, 0, + 34, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 34, 0, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 66, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 32, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 7, 66, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 4, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 66, 32, - 16, 0, 6, 0, 0, 0, - 70, 18, 16, 0, 2, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 8, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 70, 130, + 32, 0, 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 8, 18, 32, 16, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 34, 32, + 0, 0, 1, 0, 0, 0, + 16, 0, 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 66, 32, 16, 0, 3, 0, + 2, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 5, + 114, 32, 16, 0, 7, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 130, - 32, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 5, 114, 32, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 18, 0, + 4, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 2, 0, 0, 0, - 70, 142, 32, 0, 2, 0, + 2, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 114, 32, + 16, 0, 5, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 20, 0, 0, 0, + 54, 0, 0, 5, 130, 32, + 16, 0, 6, 0, 0, 0, + 58, 16, 16, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 216, 0, + 0, 0, 6, 0, 0, 0, + 8, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 164, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 7, 7, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 9, - 114, 32, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 20, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 6, 0, - 0, 0, 58, 16, 16, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 216, 0, 0, 0, 6, 0, - 0, 0, 8, 0, 0, 0, - 152, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 3, 3, 0, 0, 188, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 4, 0, 0, 0, + 15, 1, 0, 0, 201, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 15, 1, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 84, + 65, 78, 71, 69, 78, 84, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 66, 76, + 69, 78, 68, 73, 78, 68, + 73, 67, 69, 83, 0, 66, + 76, 69, 78, 68, 87, 69, + 73, 71, 72, 84, 0, 171, + 171, 171, 79, 83, 71, 78, + 228, 0, 0, 0, 8, 0, + 0, 0, 8, 0, 0, 0, + 200, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 164, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 171, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 179, 0, 0, 0, 0, 0, + 0, 0, 3, 12, 0, 0, + 218, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, - 0, 0, 3, 3, 0, 0, - 188, 0, 0, 0, 0, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 4, 0, - 0, 0, 15, 1, 0, 0, - 201, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, - 0, 0, 15, 1, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 65, 78, 71, 69, - 78, 84, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 66, 76, 69, 78, 68, 73, - 78, 68, 73, 67, 69, 83, - 0, 66, 76, 69, 78, 68, - 87, 69, 73, 71, 72, 84, - 0, 171, 171, 171, 79, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 6, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 8, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171 + 3, 0, 0, 0, 7, 0, + 0, 0, 7, 8, 0, 0, + 83, 86, 95, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1BonesVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1BonesVc.inc index b12336a3c44b3632bb56dfad19ce7ceadaba971f..d2a4e2b06a27d3ca7d6abc2e476ee9fe1467c99b 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1BonesVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main1BonesVc.inc @@ -53,48 +53,74 @@ // vs_2_0 def c228, 3, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dcl_texcoord5 v5 - dcl_texcoord6 v6 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12,13,14> + dcl_texcoord4 v4 // vertex<15,16> + dcl_texcoord5 v5 // vertex<17,18,19,20> + dcl_texcoord6 v6 // vertex<21,22,23,24> + +#line 112 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" mul r0.x, v5.x, c228.x mova a0.x, r0.x - mul r0, v6.x, c0[a0.x] - dp3 oT5.x, v2, r0 - mul r1, v6.x, c1[a0.x] - mul r2, v6.x, c2[a0.x] - dp3 oT5.y, v2, r1 - dp3 oT5.z, v2, r2 - dp4 r3.x, v0, r0 - dp3 r0.x, v1, r0 - dp4 r3.y, v0, r1 - dp3 r0.y, v1, r1 - dp4 r3.z, v0, r2 - dp3 r0.z, v1, r2 + mul r0, v6.x, c0[a0.x] // ::skinning<0,3,6,9> + +#line 117 + dp3 oT5.x, v2, r0 // ::main1BonesVc<19> + +#line 112 + mul r1, v6.x, c1[a0.x] // ::skinning<1,4,7,10> + mul r2, v6.x, c2[a0.x] // ::skinning<2,5,8,11> + +#line 117 + dp3 oT5.y, v2, r1 // ::main1BonesVc<20> + dp3 oT5.z, v2, r2 // ::main1BonesVc<21> + dp4 r3.x, v0, r0 // SkinVc::vertex<0> + dp3 r0.x, v1, r0 // SkinVc::vertex<4> + dp4 r3.y, v0, r1 // SkinVc::vertex<1> + dp3 r0.y, v1, r1 // SkinVc::vertex<5> + dp4 r3.z, v0, r2 // SkinVc::vertex<2> + dp3 r0.z, v1, r2 // SkinVc::vertex<6> + +#line 237 mov r3.w, v0.w - dp4 oPos.z, r3, c223 - mul oT0, v3, c217 + +#line 240 + dp4 oPos.z, r3, c223 // ::main1BonesVc<2> + mul oT0, v3, c217 // ::main1BonesVc<4,5,6,7> mad r1.xyz, v4.xyxw, c228.yyzw, c228.zzyw - dp3 oT1.x, r1, c225.xyww - dp3 oT1.y, r1, c226.xyww - dp3 oT2.x, r0, c218 - dp3 oT2.y, r0, c219 - dp3 oT2.z, r0, c220 - mov oT6.xyz, r0 - dp4 r0.x, r3, c218 - dp4 r0.y, r3, c219 - dp4 r0.z, r3, c220 - add oT4.xyz, -r0, c227 - mov oT3.xyz, r0 - dp4 r0.x, r3, c221 - dp4 r0.y, r3, c222 - dp4 r0.z, r3, c224 - mad oPos.xy, r0.z, c216, r0 - mov oPos.w, r0.z - mov oT5.w, v2.w + dp3 oT1.x, r1, c225.xyww // ::main1BonesVc<8> + dp3 oT1.y, r1, c226.xyww // ::main1BonesVc<9> + dp3 oT2.x, r0, c218 // ::main1BonesVc<10> + dp3 oT2.y, r0, c219 // ::main1BonesVc<11> + dp3 oT2.z, r0, c220 // ::main1BonesVc<12> + +#line 116 + mov oT6.xyz, r0 // ::main1BonesVc<23,24,25> + +#line 237 + dp4 r0.x, r3, c218 // ::wp<0> + dp4 r0.y, r3, c219 // ::wp<1> + dp4 r0.z, r3, c220 // ::wp<2> + +#line 245 + add oT4.xyz, -r0, c227 // ::main1BonesVc<16,17,18> + +#line 237 + mov oT3.xyz, r0 // ::main1BonesVc<13,14,15> + +#line 240 + dp4 r0.x, r3, c221 // ::result<0> + dp4 r0.y, r3, c222 // ::result<1> + dp4 r0.z, r3, c224 // ::result<3> + +#line 231 + mad oPos.xy, r0.z, c216, r0 // ::main1BonesVc<0,1> + mov oPos.w, r0.z // ::main1BonesVc<3> + +#line 117 + mov oT5.w, v2.w // ::main1BonesVc<22> // approximately 35 instruction slots used vs_4_0 @@ -156,17 +182,17 @@ ret const BYTE DGSLEffect_main1BonesVc[] = { - 68, 88, 66, 67, 122, 111, - 179, 134, 211, 148, 172, 150, - 73, 190, 170, 28, 244, 155, - 105, 24, 1, 0, 0, 0, - 0, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 128, 178, + 178, 97, 125, 167, 70, 197, + 27, 237, 13, 172, 173, 144, + 242, 53, 1, 0, 0, 0, + 204, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 72, 3, 0, 0, 24, 8, - 0, 0, 20, 9, 0, 0, - 65, 111, 110, 57, 16, 3, - 0, 0, 16, 3, 0, 0, - 0, 2, 254, 255, 160, 2, + 20, 9, 0, 0, 228, 13, + 0, 0, 224, 14, 0, 0, + 65, 111, 110, 57, 220, 8, + 0, 0, 220, 8, 0, 0, + 0, 2, 254, 255, 108, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -184,403 +210,650 @@ const BYTE DGSLEffect_main1BonesVc[] = 0, 0, 2, 0, 20, 0, 1, 0, 227, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 228, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 5, 128, - 5, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 6, 128, - 6, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 1, 128, - 5, 0, 0, 144, 228, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 1, 176, 0, 0, - 0, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 6, 0, - 0, 144, 0, 32, 228, 160, - 0, 0, 0, 176, 8, 0, - 0, 3, 5, 0, 1, 224, - 2, 0, 228, 144, 0, 0, - 228, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 0, 144, 1, 32, 228, 160, - 0, 0, 0, 176, 5, 0, - 0, 4, 2, 0, 15, 128, - 6, 0, 0, 144, 2, 32, + 0, 2, 254, 255, 254, 255, + 114, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 156, 5, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 43, 0, 0, 0, + 120, 0, 0, 0, 6, 0, + 0, 0, 36, 5, 0, 0, + 208, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 208, 5, + 0, 0, 0, 0, 255, 255, + 232, 5, 0, 0, 0, 0, + 255, 255, 244, 5, 0, 0, + 0, 0, 255, 255, 0, 6, + 0, 0, 0, 0, 255, 255, + 12, 6, 0, 0, 0, 0, + 255, 255, 24, 6, 0, 0, + 0, 0, 255, 255, 36, 6, + 0, 0, 0, 0, 255, 255, + 48, 6, 0, 0, 112, 0, + 0, 0, 60, 6, 0, 0, + 112, 0, 0, 0, 76, 6, + 0, 0, 112, 0, 0, 0, + 88, 6, 0, 0, 117, 0, + 0, 0, 108, 6, 0, 0, + 112, 0, 0, 0, 124, 6, + 0, 0, 112, 0, 0, 0, + 144, 6, 0, 0, 117, 0, + 0, 0, 164, 6, 0, 0, + 117, 0, 0, 0, 180, 6, + 0, 0, 115, 0, 0, 0, + 196, 6, 0, 0, 116, 0, + 0, 0, 212, 6, 0, 0, + 115, 0, 0, 0, 228, 6, + 0, 0, 116, 0, 0, 0, + 244, 6, 0, 0, 115, 0, + 0, 0, 4, 7, 0, 0, + 116, 0, 0, 0, 20, 7, + 0, 0, 237, 0, 0, 0, + 36, 7, 0, 0, 240, 0, + 0, 0, 48, 7, 0, 0, + 241, 0, 0, 0, 64, 7, + 0, 0, 242, 0, 0, 0, + 80, 7, 0, 0, 242, 0, + 0, 0, 100, 7, 0, 0, + 242, 0, 0, 0, 116, 7, + 0, 0, 243, 0, 0, 0, + 132, 7, 0, 0, 243, 0, + 0, 0, 148, 7, 0, 0, + 243, 0, 0, 0, 164, 7, + 0, 0, 116, 0, 0, 0, + 180, 7, 0, 0, 237, 0, + 0, 0, 192, 7, 0, 0, + 237, 0, 0, 0, 208, 7, + 0, 0, 237, 0, 0, 0, + 224, 7, 0, 0, 245, 0, + 0, 0, 240, 7, 0, 0, + 237, 0, 0, 0, 0, 8, + 0, 0, 240, 0, 0, 0, + 12, 8, 0, 0, 240, 0, + 0, 0, 28, 8, 0, 0, + 240, 0, 0, 0, 44, 8, + 0, 0, 231, 0, 0, 0, + 60, 8, 0, 0, 231, 0, + 0, 0, 80, 8, 0, 0, + 117, 0, 0, 0, 92, 8, + 0, 0, 109, 97, 105, 110, + 49, 66, 111, 110, 101, 115, + 86, 99, 0, 112, 111, 115, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 221, 1, 0, 0, 228, 1, + 0, 0, 244, 1, 0, 0, + 228, 1, 0, 0, 252, 1, + 0, 0, 0, 2, 0, 0, + 16, 2, 0, 0, 28, 2, + 0, 0, 44, 2, 0, 0, + 28, 2, 0, 0, 53, 2, + 0, 0, 28, 2, 0, 0, + 59, 2, 0, 0, 228, 1, + 0, 0, 67, 2, 0, 0, + 28, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 76, 2, + 0, 0, 11, 0, 0, 0, + 19, 0, 255, 255, 255, 255, + 255, 255, 14, 0, 0, 0, + 255, 255, 20, 0, 255, 255, + 255, 255, 15, 0, 0, 0, + 255, 255, 255, 255, 21, 0, + 255, 255, 23, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 24, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 26, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 27, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 28, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 29, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 30, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 31, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 35, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 36, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 40, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 41, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 42, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 76, 2, + 0, 0, 37, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 38, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 39, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 12, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 13, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 83, 107, 105, 110, 86, 99, + 0, 118, 101, 114, 116, 101, + 120, 0, 99, 111, 108, 111, + 114, 0, 98, 111, 110, 101, + 73, 110, 100, 105, 99, 101, + 115, 0, 1, 0, 2, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 98, 108, 101, 110, 100, 87, + 101, 105, 103, 104, 116, 115, + 0, 171, 171, 171, 221, 1, + 0, 0, 228, 1, 0, 0, + 67, 2, 0, 0, 28, 2, + 0, 0, 59, 2, 0, 0, + 228, 1, 0, 0, 230, 3, + 0, 0, 228, 1, 0, 0, + 252, 1, 0, 0, 0, 2, + 0, 0, 236, 3, 0, 0, + 248, 3, 0, 0, 8, 4, + 0, 0, 228, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 25, 0, 1, 0, 7, 0, + 24, 4, 0, 0, 16, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 17, 0, + 0, 0, 4, 0, 255, 255, + 255, 255, 255, 255, 18, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 19, 0, + 0, 0, 255, 255, 5, 0, + 255, 255, 255, 255, 20, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 21, 0, + 0, 0, 255, 255, 255, 255, + 6, 0, 255, 255, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 3, 0, + 0, 0, 7, 0, 8, 0, + 9, 0, 10, 0, 4, 0, + 0, 0, 11, 0, 12, 0, + 13, 0, 14, 0, 5, 0, + 0, 0, 15, 0, 16, 0, + 255, 255, 255, 255, 6, 0, + 0, 0, 17, 0, 18, 0, + 19, 0, 20, 0, 7, 0, + 0, 0, 21, 0, 22, 0, + 23, 0, 24, 0, 119, 112, + 0, 171, 32, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 33, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 34, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 0, 0, 0, 0, + 208, 1, 0, 0, 140, 2, + 0, 0, 16, 0, 0, 0, + 156, 2, 0, 0, 0, 0, + 0, 0, 92, 3, 0, 0, + 100, 3, 0, 0, 3, 0, + 0, 0, 116, 3, 0, 0, + 0, 0, 0, 0, 152, 3, + 0, 0, 164, 3, 0, 0, + 3, 0, 0, 0, 180, 3, + 0, 0, 216, 3, 0, 0, + 223, 3, 0, 0, 80, 4, + 0, 0, 6, 0, 0, 0, + 96, 4, 0, 0, 208, 1, + 0, 0, 223, 3, 0, 0, + 80, 4, 0, 0, 7, 0, + 0, 0, 168, 4, 0, 0, + 0, 0, 0, 0, 252, 4, + 0, 0, 28, 2, 0, 0, + 3, 0, 0, 0, 0, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 228, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 5, 128, 5, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 6, 128, 6, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 1, 128, 5, 0, 0, 144, + 228, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 1, 176, + 0, 0, 0, 128, 5, 0, + 0, 4, 0, 0, 15, 128, + 6, 0, 0, 144, 0, 32, 228, 160, 0, 0, 0, 176, 8, 0, 0, 3, 5, 0, - 2, 224, 2, 0, 228, 144, + 1, 224, 2, 0, 228, 144, + 0, 0, 228, 128, 5, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 0, 144, 1, 32, + 228, 160, 0, 0, 0, 176, + 5, 0, 0, 4, 2, 0, + 15, 128, 6, 0, 0, 144, + 2, 32, 228, 160, 0, 0, + 0, 176, 8, 0, 0, 3, + 5, 0, 2, 224, 2, 0, + 228, 144, 1, 0, 228, 128, + 8, 0, 0, 3, 5, 0, + 4, 224, 2, 0, 228, 144, + 2, 0, 228, 128, 9, 0, + 0, 3, 3, 0, 1, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 0, 0, 228, 128, + 9, 0, 0, 3, 3, 0, + 2, 128, 0, 0, 228, 144, 1, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 4, 224, - 2, 0, 228, 144, 2, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 1, 0, 228, 128, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, + 3, 0, 4, 128, 0, 0, + 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 3, 0, 2, 128, - 0, 0, 228, 144, 1, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 1, 0, 228, 128, - 9, 0, 0, 3, 3, 0, - 4, 128, 0, 0, 228, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 3, 0, - 228, 128, 223, 0, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 224, 3, 0, 228, 144, - 217, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 4, 0, 196, 144, 228, 0, - 229, 160, 228, 0, 218, 160, + 4, 128, 1, 0, 228, 144, + 2, 0, 228, 128, 1, 0, + 0, 2, 3, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 0, 0, 4, 192, + 3, 0, 228, 128, 223, 0, + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 224, 3, 0, + 228, 144, 217, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 4, 0, 196, 144, + 228, 0, 229, 160, 228, 0, + 218, 160, 8, 0, 0, 3, + 1, 0, 1, 224, 1, 0, + 228, 128, 225, 0, 244, 160, 8, 0, 0, 3, 1, 0, - 1, 224, 1, 0, 228, 128, - 225, 0, 244, 160, 8, 0, - 0, 3, 1, 0, 2, 224, - 1, 0, 228, 128, 226, 0, - 244, 160, 8, 0, 0, 3, - 2, 0, 1, 224, 0, 0, - 228, 128, 218, 0, 228, 160, + 2, 224, 1, 0, 228, 128, + 226, 0, 244, 160, 8, 0, + 0, 3, 2, 0, 1, 224, + 0, 0, 228, 128, 218, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 2, 224, 0, 0, + 228, 128, 219, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 2, 224, 0, 0, 228, 128, - 219, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 224, - 0, 0, 228, 128, 220, 0, + 4, 224, 0, 0, 228, 128, + 220, 0, 228, 160, 1, 0, + 0, 2, 6, 0, 7, 224, + 0, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 3, 0, 228, 128, 218, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 2, 128, 3, 0, + 228, 128, 219, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 3, 0, 228, 128, + 220, 0, 228, 160, 2, 0, + 0, 3, 4, 0, 7, 224, + 0, 0, 228, 129, 227, 0, 228, 160, 1, 0, 0, 2, - 6, 0, 7, 224, 0, 0, + 3, 0, 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 3, 0, - 228, 128, 218, 0, 228, 160, + 228, 128, 221, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 3, 0, 228, 128, - 219, 0, 228, 160, 9, 0, + 222, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 3, 0, 228, 128, 220, 0, - 228, 160, 2, 0, 0, 3, - 4, 0, 7, 224, 0, 0, - 228, 129, 227, 0, 228, 160, - 1, 0, 0, 2, 3, 0, - 7, 224, 0, 0, 228, 128, - 9, 0, 0, 3, 0, 0, - 1, 128, 3, 0, 228, 128, - 221, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 3, 0, 228, 128, 222, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 3, 0, - 228, 128, 224, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 216, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 5, 0, 8, 224, 2, 0, - 255, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 200, 4, - 0, 0, 64, 0, 1, 0, - 50, 1, 0, 0, 89, 0, + 3, 0, 228, 128, 224, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 216, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 5, 0, 8, 224, + 2, 0, 255, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 200, 4, 0, 0, 64, 0, + 1, 0, 50, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 2, 0, - 0, 0, 21, 0, 0, 0, - 89, 8, 0, 4, 70, 142, - 32, 0, 4, 0, 0, 0, - 216, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 4, 0, 0, 0, 95, 0, - 0, 3, 18, 16, 16, 0, - 5, 0, 0, 0, 95, 0, - 0, 3, 18, 16, 16, 0, - 6, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 4, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 5, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 6, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 7, 0, - 0, 0, 104, 0, 0, 2, - 5, 0, 0, 0, 38, 0, - 0, 8, 0, 208, 0, 0, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 16, 16, 0, - 5, 0, 0, 0, 1, 64, - 0, 0, 3, 0, 0, 0, - 56, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 16, 16, 0, 6, 0, - 0, 0, 70, 142, 32, 4, - 4, 0, 0, 0, 10, 0, + 2, 0, 0, 0, 21, 0, + 0, 0, 89, 8, 0, 4, + 70, 142, 32, 0, 4, 0, + 0, 0, 216, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 17, 0, 0, 7, 18, 0, + 95, 0, 0, 3, 114, 16, + 16, 0, 1, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 2, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 56, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 3, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 4, 0, 0, 0, + 95, 0, 0, 3, 18, 16, + 16, 0, 5, 0, 0, 0, + 95, 0, 0, 3, 18, 16, + 16, 0, 6, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 4, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 5, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 6, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 7, 0, 0, 0, 104, 0, + 0, 2, 5, 0, 0, 0, + 38, 0, 0, 8, 0, 208, + 0, 0, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 16, + 16, 0, 5, 0, 0, 0, + 1, 64, 0, 0, 3, 0, + 0, 0, 56, 0, 0, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 6, 16, 16, 0, + 6, 0, 0, 0, 70, 142, + 32, 4, 4, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 7, + 18, 0, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 6, 16, 16, 0, 6, 0, + 0, 0, 70, 142, 32, 6, + 4, 0, 0, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 56, 0, 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 6, 16, + 0, 0, 0, 0, 6, 16, 16, 0, 6, 0, 0, 0, 70, 142, 32, 6, 4, 0, - 0, 0, 1, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 6, 0, 0, 0, 70, 142, - 32, 6, 4, 0, 0, 0, - 2, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 7, 34, 0, + 0, 0, 17, 0, 0, 7, + 34, 0, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 17, 0, 0, 7, 66, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 17, 0, - 0, 7, 66, 0, 16, 0, - 2, 0, 0, 0, 70, 30, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 2, 0, 0, 0, 58, 16, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 2, 0, - 0, 0, 58, 16, 16, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 2, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 17, 0, 0, 8, 18, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 5, 0, + 2, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 0, 0, + 34, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 6, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, + 5, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 7, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 17, 0, 0, 8, 130, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 50, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 4, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 16, 0, 0, 8, 18, 32, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 70, 131, 32, 0, - 2, 0, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 8, - 34, 32, 16, 0, 2, 0, + 2, 0, 0, 0, 7, 0, + 0, 0, 56, 0, 0, 8, + 242, 32, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 5, 50, 0, 16, 0, + 4, 0, 0, 0, 70, 16, + 16, 0, 4, 0, 0, 0, + 54, 0, 0, 5, 66, 0, + 16, 0, 4, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 16, 0, 0, 8, + 18, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 131, 32, 0, 2, 0, 0, 0, - 17, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 4, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 18, 32, 16, 0, 6, 0, - 0, 0, 70, 18, 16, 0, + 16, 0, 0, 0, 16, 0, + 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 34, 0, + 16, 0, 4, 0, 0, 0, + 70, 131, 32, 0, 2, 0, + 0, 0, 17, 0, 0, 0, + 16, 0, 0, 7, 18, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 32, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 18, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 3, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 4, 0, + 34, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 66, 32, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 34, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 8, 18, 32, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 70, 130, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 34, 32, + 3, 0, 0, 0, 16, 0, + 0, 7, 66, 0, 16, 0, + 4, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 7, + 66, 32, 16, 0, 6, 0, + 0, 0, 70, 18, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 18, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 66, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 5, 114, 32, 16, 0, - 7, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 16, 0, + 0, 8, 66, 32, 16, 0, + 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 5, 114, 32, + 16, 0, 7, 0, 0, 0, + 70, 2, 16, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 9, - 114, 32, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 20, 0, + 0, 0, 1, 0, 0, 0, + 17, 0, 0, 8, 66, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 6, 0, - 0, 0, 58, 16, 16, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 244, 0, 0, 0, 7, 0, - 0, 0, 8, 0, 0, 0, - 176, 0, 0, 0, 0, 0, + 114, 32, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 188, 0, 0, 0, 0, 0, + 0, 9, 114, 32, 16, 0, + 5, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 2, 0, 0, 0, + 20, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 6, 0, 0, 0, 58, 16, + 16, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 244, 0, 0, 0, + 7, 0, 0, 0, 8, 0, + 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 195, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 203, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 15, 0, 0, - 209, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 15, 15, + 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 3, 3, 0, 0, - 218, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 15, + 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 5, 0, - 0, 0, 15, 1, 0, 0, - 231, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 3, 3, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 1, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 65, 78, 71, 69, - 78, 84, 0, 67, 79, 76, - 79, 82, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 66, 76, 69, 78, 68, 73, - 78, 68, 73, 67, 69, 83, - 0, 66, 76, 69, 78, 68, - 87, 69, 73, 71, 72, 84, - 0, 171, 79, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 15, 1, + 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 12, 0, 0, - 218, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 8, 0, 0, - 218, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 8, 0, 0, - 218, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 8, 0, 0, - 218, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 1, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 84, 65, 78, + 71, 69, 78, 84, 0, 67, + 79, 76, 79, 82, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 66, 76, 69, 78, + 68, 73, 78, 68, 73, 67, + 69, 83, 0, 66, 76, 69, + 78, 68, 87, 69, 73, 71, + 72, 84, 0, 171, 79, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 8, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171 + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 12, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 8, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2Bones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2Bones.inc index 847b128cf26f809e0d47e56104a459a55c5669cc..5f4e67ef777182572c9b50589a8f801f99ebe058 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2Bones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2Bones.inc @@ -52,50 +52,78 @@ // vs_2_0 def c228, 3, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dcl_texcoord5 v5 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12> + dcl_texcoord4 v4 // vertex<13,14,15,16> + dcl_texcoord5 v5 // vertex<17,18,19,20> + +#line 97 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" mul r0.xy, v4, c228.x mova a0.xy, r0.yxzw mul r0, v5.y, c0[a0.x] - mad r0, c0[a0.y], v5.x, r0 - dp3 oT5.x, v2, r0 + mad r0, c0[a0.y], v5.x, r0 // ::skinning<0,3,6,9> + +#line 102 + dp3 oT5.x, v2, r0 // ::main2Bones<19> + +#line 97 mul r1, v5.y, c1[a0.x] mul r2, v5.y, c2[a0.x] - mad r2, c2[a0.y], v5.x, r2 - mad r1, c1[a0.y], v5.x, r1 - dp3 oT5.y, v2, r1 - dp3 oT5.z, v2, r2 - dp4 r3.x, v0, r0 - dp3 r0.x, v1, r0 - dp4 r3.y, v0, r1 - dp3 r0.y, v1, r1 - dp4 r3.z, v0, r2 - dp3 r0.z, v1, r2 + mad r2, c2[a0.y], v5.x, r2 // ::skinning<2,5,8,11> + mad r1, c1[a0.y], v5.x, r1 // ::skinning<1,4,7,10> + +#line 102 + dp3 oT5.y, v2, r1 // ::main2Bones<20> + dp3 oT5.z, v2, r2 // ::main2Bones<21> + dp4 r3.x, v0, r0 // Skin::vertex<0> + dp3 r0.x, v1, r0 // Skin::vertex<4> + dp4 r3.y, v0, r1 // Skin::vertex<1> + dp3 r0.y, v1, r1 // Skin::vertex<5> + dp4 r3.z, v0, r2 // Skin::vertex<2> + dp3 r0.z, v1, r2 // Skin::vertex<6> + +#line 192 mov r3.w, v0.w - dp4 oPos.z, r3, c223 + +#line 195 + dp4 oPos.z, r3, c223 // ::main2Bones<2> mad r1.xyz, v3.xyxw, c228.yyzw, c228.zzyw - dp3 oT1.x, r1, c225.xyww - dp3 oT1.y, r1, c226.xyww - dp3 oT2.x, r0, c218 - dp3 oT2.y, r0, c219 - dp3 oT2.z, r0, c220 - mov oT6.xyz, r0 - dp4 r0.x, r3, c218 - dp4 r0.y, r3, c219 - dp4 r0.z, r3, c220 - add oT4.xyz, -r0, c227 - mov oT3.xyz, r0 - dp4 r0.x, r3, c221 - dp4 r0.y, r3, c222 - dp4 r0.z, r3, c224 - mad oPos.xy, r0.z, c216, r0 - mov oPos.w, r0.z - mov oT0, c217 - mov oT5.w, v2.w + dp3 oT1.x, r1, c225.xyww // ::main2Bones<8> + dp3 oT1.y, r1, c226.xyww // ::main2Bones<9> + dp3 oT2.x, r0, c218 // ::main2Bones<10> + dp3 oT2.y, r0, c219 // ::main2Bones<11> + dp3 oT2.z, r0, c220 // ::main2Bones<12> + +#line 101 + mov oT6.xyz, r0 // ::main2Bones<23,24,25> + +#line 192 + dp4 r0.x, r3, c218 // ::wp<0> + dp4 r0.y, r3, c219 // ::wp<1> + dp4 r0.z, r3, c220 // ::wp<2> + +#line 200 + add oT4.xyz, -r0, c227 // ::main2Bones<16,17,18> + +#line 192 + mov oT3.xyz, r0 // ::main2Bones<13,14,15> + +#line 195 + dp4 r0.x, r3, c221 // ::result<0> + dp4 r0.y, r3, c222 // ::result<1> + dp4 r0.z, r3, c224 // ::result<3> + +#line 186 + mad oPos.xy, r0.z, c216, r0 // ::main2Bones<0,1> + mov oPos.w, r0.z // ::main2Bones<3> + +#line 196 + mov oT0, c217 // ::main2Bones<4,5,6,7> + +#line 102 + mov oT5.w, v2.w // ::main2Bones<22> // approximately 38 instruction slots used vs_4_0 @@ -159,17 +187,17 @@ ret const BYTE DGSLEffect_main2Bones[] = { - 68, 88, 66, 67, 200, 61, - 157, 197, 213, 10, 37, 211, - 99, 247, 63, 150, 248, 58, - 224, 166, 1, 0, 0, 0, - 160, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 139, 240, + 154, 192, 91, 144, 240, 213, + 181, 251, 99, 29, 57, 102, + 52, 224, 1, 0, 0, 0, + 92, 16, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 128, 3, 0, 0, 212, 8, - 0, 0, 180, 9, 0, 0, - 65, 111, 110, 57, 72, 3, - 0, 0, 72, 3, 0, 0, - 0, 2, 254, 255, 216, 2, + 60, 9, 0, 0, 144, 14, + 0, 0, 112, 15, 0, 0, + 65, 111, 110, 57, 4, 9, + 0, 0, 4, 9, 0, 0, + 0, 2, 254, 255, 148, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -187,430 +215,674 @@ const BYTE DGSLEffect_main2Bones[] = 0, 0, 2, 0, 20, 0, 1, 0, 227, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 228, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 5, 128, - 5, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 3, 128, - 4, 0, 228, 144, 228, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 3, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 5, 0, - 85, 144, 0, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 0, 0, 15, 128, + 0, 2, 254, 255, 254, 255, + 110, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 140, 5, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 45, 0, 0, 0, + 120, 0, 0, 0, 6, 0, + 0, 0, 20, 5, 0, 0, + 224, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 192, 5, + 0, 0, 0, 0, 255, 255, + 216, 5, 0, 0, 0, 0, + 255, 255, 228, 5, 0, 0, + 0, 0, 255, 255, 240, 5, + 0, 0, 0, 0, 255, 255, + 252, 5, 0, 0, 0, 0, + 255, 255, 8, 6, 0, 0, + 0, 0, 255, 255, 20, 6, + 0, 0, 97, 0, 0, 0, + 32, 6, 0, 0, 97, 0, + 0, 0, 48, 6, 0, 0, + 97, 0, 0, 0, 60, 6, + 0, 0, 97, 0, 0, 0, + 80, 6, 0, 0, 102, 0, + 0, 0, 104, 6, 0, 0, + 97, 0, 0, 0, 120, 6, + 0, 0, 97, 0, 0, 0, + 140, 6, 0, 0, 97, 0, + 0, 0, 160, 6, 0, 0, + 97, 0, 0, 0, 184, 6, + 0, 0, 102, 0, 0, 0, + 208, 6, 0, 0, 102, 0, + 0, 0, 224, 6, 0, 0, + 100, 0, 0, 0, 240, 6, + 0, 0, 101, 0, 0, 0, + 0, 7, 0, 0, 100, 0, + 0, 0, 16, 7, 0, 0, + 101, 0, 0, 0, 32, 7, + 0, 0, 100, 0, 0, 0, + 48, 7, 0, 0, 101, 0, + 0, 0, 64, 7, 0, 0, + 192, 0, 0, 0, 80, 7, + 0, 0, 195, 0, 0, 0, + 92, 7, 0, 0, 197, 0, + 0, 0, 108, 7, 0, 0, + 197, 0, 0, 0, 128, 7, + 0, 0, 197, 0, 0, 0, + 144, 7, 0, 0, 198, 0, + 0, 0, 160, 7, 0, 0, + 198, 0, 0, 0, 176, 7, + 0, 0, 198, 0, 0, 0, + 192, 7, 0, 0, 101, 0, + 0, 0, 208, 7, 0, 0, + 192, 0, 0, 0, 220, 7, + 0, 0, 192, 0, 0, 0, + 236, 7, 0, 0, 192, 0, + 0, 0, 252, 7, 0, 0, + 200, 0, 0, 0, 12, 8, + 0, 0, 192, 0, 0, 0, + 28, 8, 0, 0, 195, 0, + 0, 0, 40, 8, 0, 0, + 195, 0, 0, 0, 56, 8, + 0, 0, 195, 0, 0, 0, + 72, 8, 0, 0, 186, 0, + 0, 0, 88, 8, 0, 0, + 186, 0, 0, 0, 108, 8, + 0, 0, 196, 0, 0, 0, + 120, 8, 0, 0, 102, 0, + 0, 0, 132, 8, 0, 0, + 109, 97, 105, 110, 50, 66, + 111, 110, 101, 115, 0, 112, + 111, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 235, 1, 0, 0, 240, 1, + 0, 0, 0, 2, 0, 0, + 240, 1, 0, 0, 8, 2, + 0, 0, 12, 2, 0, 0, + 28, 2, 0, 0, 40, 2, + 0, 0, 56, 2, 0, 0, + 40, 2, 0, 0, 65, 2, + 0, 0, 40, 2, 0, 0, + 71, 2, 0, 0, 240, 1, + 0, 0, 79, 2, 0, 0, + 40, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 88, 2, + 0, 0, 11, 0, 0, 0, + 19, 0, 255, 255, 255, 255, + 255, 255, 16, 0, 0, 0, + 255, 255, 20, 0, 255, 255, + 255, 255, 17, 0, 0, 0, + 255, 255, 255, 255, 21, 0, + 255, 255, 25, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 27, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 28, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 29, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 30, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 31, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 32, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 36, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 37, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 41, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 42, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 43, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 44, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 88, 2, + 0, 0, 38, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 39, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 40, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 14, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 15, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 83, 107, 105, 110, 0, 118, + 101, 114, 116, 101, 120, 0, + 98, 111, 110, 101, 73, 110, + 100, 105, 99, 101, 115, 0, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 98, 108, + 101, 110, 100, 87, 101, 105, + 103, 104, 116, 115, 0, 171, + 171, 171, 235, 1, 0, 0, + 240, 1, 0, 0, 79, 2, + 0, 0, 40, 2, 0, 0, + 71, 2, 0, 0, 240, 1, + 0, 0, 8, 2, 0, 0, + 12, 2, 0, 0, 240, 3, + 0, 0, 252, 3, 0, 0, + 12, 4, 0, 0, 240, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 21, 0, 1, 0, + 6, 0, 28, 4, 0, 0, + 18, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 19, 0, 0, 0, 4, 0, + 255, 255, 255, 255, 255, 255, + 20, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 21, 0, 0, 0, 255, 255, + 5, 0, 255, 255, 255, 255, + 22, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 23, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 255, 255, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 9, 0, 10, 0, + 4, 0, 0, 0, 11, 0, + 12, 0, 255, 255, 255, 255, + 5, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 16, 0, + 6, 0, 0, 0, 17, 0, + 18, 0, 19, 0, 20, 0, + 119, 112, 0, 171, 33, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 34, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 35, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 0, 0, + 0, 0, 224, 1, 0, 0, + 152, 2, 0, 0, 16, 0, + 0, 0, 168, 2, 0, 0, + 0, 0, 0, 0, 104, 3, + 0, 0, 112, 3, 0, 0, + 3, 0, 0, 0, 128, 3, + 0, 0, 0, 0, 0, 0, + 164, 3, 0, 0, 176, 3, + 0, 0, 3, 0, 0, 0, + 192, 3, 0, 0, 228, 3, + 0, 0, 233, 3, 0, 0, + 76, 4, 0, 0, 6, 0, + 0, 0, 92, 4, 0, 0, + 224, 1, 0, 0, 233, 3, + 0, 0, 76, 4, 0, 0, + 6, 0, 0, 0, 164, 4, + 0, 0, 0, 0, 0, 0, + 236, 4, 0, 0, 40, 2, + 0, 0, 3, 0, 0, 0, + 240, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 228, 0, 15, 160, 0, 0, + 64, 64, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 3, 128, 3, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 4, 128, 4, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 5, 128, 5, 0, + 15, 144, 5, 0, 0, 3, + 0, 0, 3, 128, 4, 0, + 228, 144, 228, 0, 0, 160, + 46, 0, 0, 2, 0, 0, + 3, 176, 0, 0, 225, 128, + 5, 0, 0, 4, 0, 0, + 15, 128, 5, 0, 85, 144, 0, 32, 228, 160, 0, 0, + 0, 176, 4, 0, 0, 5, + 0, 0, 15, 128, 0, 32, + 228, 160, 0, 0, 85, 176, + 5, 0, 0, 144, 0, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 1, 224, 2, 0, + 228, 144, 0, 0, 228, 128, + 5, 0, 0, 4, 1, 0, + 15, 128, 5, 0, 85, 144, + 1, 32, 228, 160, 0, 0, + 0, 176, 5, 0, 0, 4, + 2, 0, 15, 128, 5, 0, + 85, 144, 2, 32, 228, 160, + 0, 0, 0, 176, 4, 0, + 0, 5, 2, 0, 15, 128, + 2, 32, 228, 160, 0, 0, + 85, 176, 5, 0, 0, 144, + 2, 0, 228, 128, 4, 0, + 0, 5, 1, 0, 15, 128, + 1, 32, 228, 160, 0, 0, 85, 176, 5, 0, 0, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 1, 224, - 2, 0, 228, 144, 0, 0, - 228, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 5, 0, - 85, 144, 1, 32, 228, 160, - 0, 0, 0, 176, 5, 0, - 0, 4, 2, 0, 15, 128, - 5, 0, 85, 144, 2, 32, - 228, 160, 0, 0, 0, 176, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 85, 176, 5, 0, - 0, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, - 0, 0, 85, 176, 5, 0, - 0, 144, 1, 0, 228, 128, - 8, 0, 0, 3, 5, 0, - 2, 224, 2, 0, 228, 144, 1, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 4, 224, - 2, 0, 228, 144, 2, 0, + 0, 3, 5, 0, 2, 224, + 2, 0, 228, 144, 1, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 4, 224, 2, 0, + 228, 144, 2, 0, 228, 128, + 9, 0, 0, 3, 3, 0, + 1, 128, 0, 0, 228, 144, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 144, 0, 0, 228, 128, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, + 3, 0, 2, 128, 0, 0, + 228, 144, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 3, 0, 2, 128, - 0, 0, 228, 144, 1, 0, + 2, 128, 1, 0, 228, 144, + 1, 0, 228, 128, 9, 0, + 0, 3, 3, 0, 4, 128, + 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 1, 0, 228, 128, - 9, 0, 0, 3, 3, 0, - 4, 128, 0, 0, 228, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 3, 0, - 228, 128, 223, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 7, 128, 3, 0, 196, 144, - 228, 0, 229, 160, 228, 0, - 218, 160, 8, 0, 0, 3, - 1, 0, 1, 224, 1, 0, - 228, 128, 225, 0, 244, 160, + 0, 0, 4, 128, 1, 0, + 228, 144, 2, 0, 228, 128, + 1, 0, 0, 2, 3, 0, + 8, 128, 0, 0, 255, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 3, 0, 228, 128, + 223, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 3, 0, 196, 144, 228, 0, + 229, 160, 228, 0, 218, 160, 8, 0, 0, 3, 1, 0, - 2, 224, 1, 0, 228, 128, - 226, 0, 244, 160, 8, 0, - 0, 3, 2, 0, 1, 224, - 0, 0, 228, 128, 218, 0, - 228, 160, 8, 0, 0, 3, - 2, 0, 2, 224, 0, 0, - 228, 128, 219, 0, 228, 160, + 1, 224, 1, 0, 228, 128, + 225, 0, 244, 160, 8, 0, + 0, 3, 1, 0, 2, 224, + 1, 0, 228, 128, 226, 0, + 244, 160, 8, 0, 0, 3, + 2, 0, 1, 224, 0, 0, + 228, 128, 218, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 4, 224, 0, 0, 228, 128, - 220, 0, 228, 160, 1, 0, - 0, 2, 6, 0, 7, 224, - 0, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 1, 128, - 3, 0, 228, 128, 218, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 3, 0, - 228, 128, 219, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 128, 3, 0, 228, 128, - 220, 0, 228, 160, 2, 0, - 0, 3, 4, 0, 7, 224, - 0, 0, 228, 129, 227, 0, + 2, 224, 0, 0, 228, 128, + 219, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 4, 224, + 0, 0, 228, 128, 220, 0, 228, 160, 1, 0, 0, 2, - 3, 0, 7, 224, 0, 0, + 6, 0, 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 3, 0, - 228, 128, 221, 0, 228, 160, + 228, 128, 218, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 3, 0, 228, 128, - 222, 0, 228, 160, 9, 0, + 219, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 3, 0, 228, 128, 224, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 216, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 217, 0, 228, 160, 1, 0, - 0, 2, 5, 0, 8, 224, - 2, 0, 255, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 76, 5, 0, 0, 64, 0, - 1, 0, 83, 1, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 89, 0, + 3, 0, 228, 128, 220, 0, + 228, 160, 2, 0, 0, 3, + 4, 0, 7, 224, 0, 0, + 228, 129, 227, 0, 228, 160, + 1, 0, 0, 2, 3, 0, + 7, 224, 0, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 1, 128, 3, 0, 228, 128, + 221, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 3, 0, 228, 128, 222, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 3, 0, + 228, 128, 224, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 216, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 217, 0, + 228, 160, 1, 0, 0, 2, + 5, 0, 8, 224, 2, 0, + 255, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 76, 5, + 0, 0, 64, 0, 1, 0, + 83, 1, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 2, 0, 0, 0, 21, 0, - 0, 0, 89, 8, 0, 4, - 70, 142, 32, 0, 4, 0, - 0, 0, 216, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 2, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 4, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 5, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 4, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 5, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 6, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 7, 0, 0, 0, 104, 0, - 0, 2, 5, 0, 0, 0, - 38, 0, 0, 11, 0, 208, - 0, 0, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 4, 0, 0, 0, - 2, 64, 0, 0, 3, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 2, 0, + 0, 0, 21, 0, 0, 0, + 89, 8, 0, 4, 70, 142, + 32, 0, 4, 0, 0, 0, + 216, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 3, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 4, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 5, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 4, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 5, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 6, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 7, 0, + 0, 0, 104, 0, 0, 2, + 5, 0, 0, 0, 38, 0, + 0, 11, 0, 208, 0, 0, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 4, 0, 0, 0, 2, 64, 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 21, 16, 0, - 5, 0, 0, 0, 70, 142, - 32, 4, 4, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 242, 0, 16, 0, 1, 0, + 56, 0, 0, 9, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 21, 16, 0, 5, 0, 0, 0, 70, 142, 32, 4, - 4, 0, 0, 0, 10, 0, + 4, 0, 0, 0, 26, 0, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 11, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 4, 4, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 6, 16, + 16, 0, 5, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 17, 0, 0, 7, + 18, 0, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 86, 21, 16, 0, 5, 0, + 0, 0, 70, 142, 32, 6, + 4, 0, 0, 0, 1, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 6, 4, 0, 0, 0, + 1, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 5, 0, 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 17, 0, - 0, 7, 18, 0, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, + 70, 14, 16, 0, 3, 0, 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 3, 0, + 242, 0, 16, 0, 4, 0, 0, 0, 86, 21, 16, 0, 5, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 1, 0, 0, 0, 26, 0, + 2, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 50, 0, 0, 12, 242, 0, - 16, 0, 3, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 70, 142, 32, 6, 4, 0, - 0, 0, 1, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 5, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 17, 0, 0, 7, 34, 0, + 16, 0, 4, 0, 0, 0, + 17, 0, 0, 7, 66, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 4, 0, 0, 0, 86, 21, - 16, 0, 5, 0, 0, 0, - 70, 142, 32, 6, 4, 0, - 0, 0, 2, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 5, 0, 0, 0, - 70, 14, 16, 0, 4, 0, - 0, 0, 17, 0, 0, 7, - 66, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 2, 0, 0, 0, 58, 16, 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 0, - 16, 0, 2, 0, 0, 0, - 58, 16, 16, 0, 0, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 0, 0, + 34, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 4, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 5, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 6, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 6, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 7, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 50, 0, 16, 0, - 4, 0, 0, 0, 70, 16, - 16, 0, 3, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 16, 0, 0, 8, - 18, 32, 16, 0, 2, 0, + 2, 0, 0, 0, 7, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 54, 0, 0, 5, + 50, 0, 16, 0, 4, 0, + 0, 0, 70, 16, 16, 0, + 3, 0, 0, 0, 54, 0, + 0, 5, 66, 0, 16, 0, + 4, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 16, 0, 0, 8, 18, 32, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 4, 0, + 0, 0, 70, 131, 32, 0, + 2, 0, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 8, + 34, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 131, 32, 0, 2, 0, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 8, 34, 32, 16, 0, + 17, 0, 0, 0, 16, 0, + 0, 7, 18, 0, 16, 0, + 4, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 16, 0, 0, 7, + 18, 32, 16, 0, 6, 0, + 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 70, 131, 32, 0, 2, 0, - 0, 0, 17, 0, 0, 0, - 16, 0, 0, 7, 18, 0, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 34, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 7, 18, 32, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 7, 34, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 16, 0, 0, 7, - 34, 0, 16, 0, 4, 0, + 66, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 34, 32, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 7, 66, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 66, 0, 16, 0, - 4, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 7, - 66, 32, 16, 0, 6, 0, - 0, 0, 70, 18, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 18, 32, + 0, 0, 0, 0, 16, 0, + 0, 8, 18, 32, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 8, - 34, 32, 16, 0, 3, 0, + 66, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 16, 0, - 0, 8, 66, 32, 16, 0, - 3, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 7, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, - 70, 130, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 7, 0, 0, 0, - 70, 2, 16, 0, 4, 0, + 17, 0, 0, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 0, 0, + 34, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 17, 0, 0, 8, 66, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 5, 114, 32, + 16, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 9, + 114, 32, 16, 0, 5, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 2, 0, 0, 0, 20, 0, 0, 0, 54, 0, 0, 5, - 114, 32, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 114, 32, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 2, 0, 0, 0, - 20, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 6, 0, 0, 0, 58, 16, - 16, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 216, 0, 0, 0, - 6, 0, 0, 0, 8, 0, - 0, 0, 152, 0, 0, 0, + 130, 32, 16, 0, 6, 0, + 0, 0, 58, 16, 16, 0, + 2, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 216, 0, 0, 0, 6, 0, + 0, 0, 8, 0, 0, 0, + 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 164, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 171, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 15, - 0, 0, 179, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 15, 15, 0, 0, + 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 3, 3, - 0, 0, 188, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 3, 3, 0, 0, + 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 15, 3, - 0, 0, 201, 0, 0, 0, + 1, 0, 0, 0, 4, 0, + 0, 0, 15, 3, 0, 0, + 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 15, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 65, 78, 71, 69, + 78, 84, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 66, 76, 69, 78, 68, 73, + 78, 68, 73, 67, 69, 83, + 0, 66, 76, 69, 78, 68, + 87, 69, 73, 71, 72, 84, + 0, 171, 171, 171, 79, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 15, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 78, 79, 82, 77, - 65, 76, 0, 84, 65, 78, - 71, 69, 78, 84, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 66, 76, 69, 78, - 68, 73, 78, 68, 73, 67, - 69, 83, 0, 66, 76, 69, - 78, 68, 87, 69, 73, 71, - 72, 84, 0, 171, 171, 171, - 79, 83, 71, 78, 228, 0, - 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 200, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 212, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 218, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 218, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 7, 8, 0, 0, 218, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 7, 8, 0, 0, 218, 0, + 2, 0, 0, 0, 3, 12, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 7, 8, 0, 0, 218, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 6, 0, 0, 0, - 15, 0, 0, 0, 218, 0, - 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 7, 0, 0, 0, - 7, 8, 0, 0, 83, 86, - 95, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171 + 3, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 8, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2BonesVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2BonesVc.inc index 5b85c12c7c9287f3cbc6a157aa5fe3dad74df130..48e32b000d3d89d6542e0bb710576c2d339395f0 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2BonesVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main2BonesVc.inc @@ -53,51 +53,77 @@ // vs_2_0 def c228, 3, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dcl_texcoord5 v5 - dcl_texcoord6 v6 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12,13,14> + dcl_texcoord4 v4 // vertex<15,16> + dcl_texcoord5 v5 // vertex<17,18,19,20> + dcl_texcoord6 v6 // vertex<21,22,23,24> + +#line 112 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" mul r0.xy, v5, c228.x mova a0.xy, r0.yxzw mul r0, v6.y, c0[a0.x] - mad r0, c0[a0.y], v6.x, r0 - dp3 oT5.x, v2, r0 + mad r0, c0[a0.y], v6.x, r0 // ::skinning<0,3,6,9> + +#line 117 + dp3 oT5.x, v2, r0 // ::main2BonesVc<19> + +#line 112 mul r1, v6.y, c1[a0.x] mul r2, v6.y, c2[a0.x] - mad r2, c2[a0.y], v6.x, r2 - mad r1, c1[a0.y], v6.x, r1 - dp3 oT5.y, v2, r1 - dp3 oT5.z, v2, r2 - dp4 r3.x, v0, r0 - dp3 r0.x, v1, r0 - dp4 r3.y, v0, r1 - dp3 r0.y, v1, r1 - dp4 r3.z, v0, r2 - dp3 r0.z, v1, r2 + mad r2, c2[a0.y], v6.x, r2 // ::skinning<2,5,8,11> + mad r1, c1[a0.y], v6.x, r1 // ::skinning<1,4,7,10> + +#line 117 + dp3 oT5.y, v2, r1 // ::main2BonesVc<20> + dp3 oT5.z, v2, r2 // ::main2BonesVc<21> + dp4 r3.x, v0, r0 // SkinVc::vertex<0> + dp3 r0.x, v1, r0 // SkinVc::vertex<4> + dp4 r3.y, v0, r1 // SkinVc::vertex<1> + dp3 r0.y, v1, r1 // SkinVc::vertex<5> + dp4 r3.z, v0, r2 // SkinVc::vertex<2> + dp3 r0.z, v1, r2 // SkinVc::vertex<6> + +#line 259 mov r3.w, v0.w - dp4 oPos.z, r3, c223 - mul oT0, v3, c217 + +#line 262 + dp4 oPos.z, r3, c223 // ::main2BonesVc<2> + mul oT0, v3, c217 // ::main2BonesVc<4,5,6,7> mad r1.xyz, v4.xyxw, c228.yyzw, c228.zzyw - dp3 oT1.x, r1, c225.xyww - dp3 oT1.y, r1, c226.xyww - dp3 oT2.x, r0, c218 - dp3 oT2.y, r0, c219 - dp3 oT2.z, r0, c220 - mov oT6.xyz, r0 - dp4 r0.x, r3, c218 - dp4 r0.y, r3, c219 - dp4 r0.z, r3, c220 - add oT4.xyz, -r0, c227 - mov oT3.xyz, r0 - dp4 r0.x, r3, c221 - dp4 r0.y, r3, c222 - dp4 r0.z, r3, c224 - mad oPos.xy, r0.z, c216, r0 - mov oPos.w, r0.z - mov oT5.w, v2.w + dp3 oT1.x, r1, c225.xyww // ::main2BonesVc<8> + dp3 oT1.y, r1, c226.xyww // ::main2BonesVc<9> + dp3 oT2.x, r0, c218 // ::main2BonesVc<10> + dp3 oT2.y, r0, c219 // ::main2BonesVc<11> + dp3 oT2.z, r0, c220 // ::main2BonesVc<12> + +#line 116 + mov oT6.xyz, r0 // ::main2BonesVc<23,24,25> + +#line 259 + dp4 r0.x, r3, c218 // ::wp<0> + dp4 r0.y, r3, c219 // ::wp<1> + dp4 r0.z, r3, c220 // ::wp<2> + +#line 267 + add oT4.xyz, -r0, c227 // ::main2BonesVc<16,17,18> + +#line 259 + mov oT3.xyz, r0 // ::main2BonesVc<13,14,15> + +#line 262 + dp4 r0.x, r3, c221 // ::result<0> + dp4 r0.y, r3, c222 // ::result<1> + dp4 r0.z, r3, c224 // ::result<3> + +#line 253 + mad oPos.xy, r0.z, c216, r0 // ::main2BonesVc<0,1> + mov oPos.w, r0.z // ::main2BonesVc<3> + +#line 117 + mov oT5.w, v2.w // ::main2BonesVc<22> // approximately 38 instruction slots used vs_4_0 @@ -162,17 +188,17 @@ ret const BYTE DGSLEffect_main2BonesVc[] = { - 68, 88, 66, 67, 23, 71, - 182, 185, 235, 186, 53, 182, - 76, 51, 4, 190, 219, 74, - 111, 156, 1, 0, 0, 0, - 224, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 123, 121, + 55, 167, 3, 144, 97, 7, + 118, 119, 195, 195, 188, 134, + 242, 194, 1, 0, 0, 0, + 196, 16, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 144, 3, 0, 0, 248, 8, - 0, 0, 244, 9, 0, 0, - 65, 111, 110, 57, 88, 3, - 0, 0, 88, 3, 0, 0, - 0, 2, 254, 255, 232, 2, + 116, 9, 0, 0, 220, 14, + 0, 0, 216, 15, 0, 0, + 65, 111, 110, 57, 60, 9, + 0, 0, 60, 9, 0, 0, + 0, 2, 254, 255, 204, 8, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -190,440 +216,692 @@ const BYTE DGSLEffect_main2BonesVc[] = 0, 0, 2, 0, 20, 0, 1, 0, 227, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 228, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 5, 128, - 5, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 6, 128, - 6, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 3, 128, - 5, 0, 228, 144, 228, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 3, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 6, 0, - 85, 144, 0, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 0, 0, 15, 128, - 0, 32, 228, 160, 0, 0, - 85, 176, 6, 0, 0, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 1, 224, - 2, 0, 228, 144, 0, 0, - 228, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 85, 144, 1, 32, 228, 160, - 0, 0, 0, 176, 5, 0, - 0, 4, 2, 0, 15, 128, - 6, 0, 85, 144, 2, 32, + 0, 2, 254, 255, 254, 255, + 120, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 180, 5, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 46, 0, 0, 0, + 120, 0, 0, 0, 6, 0, + 0, 0, 60, 5, 0, 0, + 232, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 232, 5, + 0, 0, 0, 0, 255, 255, + 0, 6, 0, 0, 0, 0, + 255, 255, 12, 6, 0, 0, + 0, 0, 255, 255, 24, 6, + 0, 0, 0, 0, 255, 255, + 36, 6, 0, 0, 0, 0, + 255, 255, 48, 6, 0, 0, + 0, 0, 255, 255, 60, 6, + 0, 0, 0, 0, 255, 255, + 72, 6, 0, 0, 112, 0, + 0, 0, 84, 6, 0, 0, + 112, 0, 0, 0, 100, 6, + 0, 0, 112, 0, 0, 0, + 112, 6, 0, 0, 112, 0, + 0, 0, 132, 6, 0, 0, + 117, 0, 0, 0, 156, 6, + 0, 0, 112, 0, 0, 0, + 172, 6, 0, 0, 112, 0, + 0, 0, 192, 6, 0, 0, + 112, 0, 0, 0, 212, 6, + 0, 0, 112, 0, 0, 0, + 236, 6, 0, 0, 117, 0, + 0, 0, 4, 7, 0, 0, + 117, 0, 0, 0, 20, 7, + 0, 0, 115, 0, 0, 0, + 36, 7, 0, 0, 116, 0, + 0, 0, 52, 7, 0, 0, + 115, 0, 0, 0, 68, 7, + 0, 0, 116, 0, 0, 0, + 84, 7, 0, 0, 115, 0, + 0, 0, 100, 7, 0, 0, + 116, 0, 0, 0, 116, 7, + 0, 0, 3, 1, 0, 0, + 132, 7, 0, 0, 6, 1, + 0, 0, 144, 7, 0, 0, + 7, 1, 0, 0, 160, 7, + 0, 0, 8, 1, 0, 0, + 176, 7, 0, 0, 8, 1, + 0, 0, 196, 7, 0, 0, + 8, 1, 0, 0, 212, 7, + 0, 0, 9, 1, 0, 0, + 228, 7, 0, 0, 9, 1, + 0, 0, 244, 7, 0, 0, + 9, 1, 0, 0, 4, 8, + 0, 0, 116, 0, 0, 0, + 20, 8, 0, 0, 3, 1, + 0, 0, 32, 8, 0, 0, + 3, 1, 0, 0, 48, 8, + 0, 0, 3, 1, 0, 0, + 64, 8, 0, 0, 11, 1, + 0, 0, 80, 8, 0, 0, + 3, 1, 0, 0, 96, 8, + 0, 0, 6, 1, 0, 0, + 108, 8, 0, 0, 6, 1, + 0, 0, 124, 8, 0, 0, + 6, 1, 0, 0, 140, 8, + 0, 0, 253, 0, 0, 0, + 156, 8, 0, 0, 253, 0, + 0, 0, 176, 8, 0, 0, + 117, 0, 0, 0, 188, 8, + 0, 0, 109, 97, 105, 110, + 50, 66, 111, 110, 101, 115, + 86, 99, 0, 112, 111, 115, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 245, 1, 0, 0, 252, 1, + 0, 0, 12, 2, 0, 0, + 252, 1, 0, 0, 20, 2, + 0, 0, 24, 2, 0, 0, + 40, 2, 0, 0, 52, 2, + 0, 0, 68, 2, 0, 0, + 52, 2, 0, 0, 77, 2, + 0, 0, 52, 2, 0, 0, + 83, 2, 0, 0, 252, 1, + 0, 0, 91, 2, 0, 0, + 52, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 100, 2, + 0, 0, 12, 0, 0, 0, + 19, 0, 255, 255, 255, 255, + 255, 255, 17, 0, 0, 0, + 255, 255, 20, 0, 255, 255, + 255, 255, 18, 0, 0, 0, + 255, 255, 255, 255, 21, 0, + 255, 255, 26, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 27, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 29, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 30, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 31, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 32, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 33, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 34, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 38, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 39, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 43, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 44, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 45, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 100, 2, + 0, 0, 40, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 41, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 42, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 15, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 16, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 83, 107, 105, 110, 86, 99, + 0, 118, 101, 114, 116, 101, + 120, 0, 99, 111, 108, 111, + 114, 0, 98, 111, 110, 101, + 73, 110, 100, 105, 99, 101, + 115, 0, 1, 0, 2, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 98, 108, 101, 110, 100, 87, + 101, 105, 103, 104, 116, 115, + 0, 171, 171, 171, 245, 1, + 0, 0, 252, 1, 0, 0, + 91, 2, 0, 0, 52, 2, + 0, 0, 83, 2, 0, 0, + 252, 1, 0, 0, 254, 3, + 0, 0, 252, 1, 0, 0, + 20, 2, 0, 0, 24, 2, + 0, 0, 4, 4, 0, 0, + 16, 4, 0, 0, 32, 4, + 0, 0, 252, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 25, 0, 1, 0, 7, 0, + 48, 4, 0, 0, 19, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 20, 0, + 0, 0, 4, 0, 255, 255, + 255, 255, 255, 255, 21, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 22, 0, + 0, 0, 255, 255, 5, 0, + 255, 255, 255, 255, 23, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 24, 0, + 0, 0, 255, 255, 255, 255, + 6, 0, 255, 255, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 3, 0, + 0, 0, 7, 0, 8, 0, + 9, 0, 10, 0, 4, 0, + 0, 0, 11, 0, 12, 0, + 13, 0, 14, 0, 5, 0, + 0, 0, 15, 0, 16, 0, + 255, 255, 255, 255, 6, 0, + 0, 0, 17, 0, 18, 0, + 19, 0, 20, 0, 7, 0, + 0, 0, 21, 0, 22, 0, + 23, 0, 24, 0, 119, 112, + 0, 171, 35, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 36, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 37, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 0, 0, 0, 0, + 232, 1, 0, 0, 164, 2, + 0, 0, 16, 0, 0, 0, + 180, 2, 0, 0, 0, 0, + 0, 0, 116, 3, 0, 0, + 124, 3, 0, 0, 3, 0, + 0, 0, 140, 3, 0, 0, + 0, 0, 0, 0, 176, 3, + 0, 0, 188, 3, 0, 0, + 3, 0, 0, 0, 204, 3, + 0, 0, 240, 3, 0, 0, + 247, 3, 0, 0, 104, 4, + 0, 0, 6, 0, 0, 0, + 120, 4, 0, 0, 232, 1, + 0, 0, 247, 3, 0, 0, + 104, 4, 0, 0, 7, 0, + 0, 0, 192, 4, 0, 0, + 0, 0, 0, 0, 20, 5, + 0, 0, 52, 2, 0, 0, + 3, 0, 0, 0, 24, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 228, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 5, 128, 5, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 6, 128, 6, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 3, 128, 5, 0, 228, 144, + 228, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 3, 176, + 0, 0, 225, 128, 5, 0, + 0, 4, 0, 0, 15, 128, + 6, 0, 85, 144, 0, 32, 228, 160, 0, 0, 0, 176, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 85, 176, 6, 0, - 0, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, + 4, 0, 0, 5, 0, 0, + 15, 128, 0, 32, 228, 160, 0, 0, 85, 176, 6, 0, - 0, 144, 1, 0, 228, 128, + 0, 144, 0, 0, 228, 128, 8, 0, 0, 3, 5, 0, - 2, 224, 2, 0, 228, 144, - 1, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 4, 224, - 2, 0, 228, 144, 2, 0, - 228, 128, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 3, 0, 2, 128, - 0, 0, 228, 144, 1, 0, + 1, 224, 2, 0, 228, 144, + 0, 0, 228, 128, 5, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 85, 144, 1, 32, + 228, 160, 0, 0, 0, 176, + 5, 0, 0, 4, 2, 0, + 15, 128, 6, 0, 85, 144, + 2, 32, 228, 160, 0, 0, + 0, 176, 4, 0, 0, 5, + 2, 0, 15, 128, 2, 32, + 228, 160, 0, 0, 85, 176, + 6, 0, 0, 144, 2, 0, + 228, 128, 4, 0, 0, 5, + 1, 0, 15, 128, 1, 32, + 228, 160, 0, 0, 85, 176, + 6, 0, 0, 144, 1, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, + 5, 0, 2, 224, 2, 0, 228, 144, 1, 0, 228, 128, + 8, 0, 0, 3, 5, 0, + 4, 224, 2, 0, 228, 144, + 2, 0, 228, 128, 9, 0, + 0, 3, 3, 0, 1, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 0, 0, 228, 128, 9, 0, 0, 3, 3, 0, - 4, 128, 0, 0, 228, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 3, 0, - 228, 128, 223, 0, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 224, 3, 0, 228, 144, - 217, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 4, 0, 196, 144, 228, 0, - 229, 160, 228, 0, 218, 160, + 2, 128, 0, 0, 228, 144, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 1, 0, + 228, 128, 9, 0, 0, 3, + 3, 0, 4, 128, 0, 0, + 228, 144, 2, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 4, 128, 1, 0, 228, 144, + 2, 0, 228, 128, 1, 0, + 0, 2, 3, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 0, 0, 4, 192, + 3, 0, 228, 128, 223, 0, + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 224, 3, 0, + 228, 144, 217, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 4, 0, 196, 144, + 228, 0, 229, 160, 228, 0, + 218, 160, 8, 0, 0, 3, + 1, 0, 1, 224, 1, 0, + 228, 128, 225, 0, 244, 160, 8, 0, 0, 3, 1, 0, - 1, 224, 1, 0, 228, 128, - 225, 0, 244, 160, 8, 0, - 0, 3, 1, 0, 2, 224, - 1, 0, 228, 128, 226, 0, - 244, 160, 8, 0, 0, 3, - 2, 0, 1, 224, 0, 0, - 228, 128, 218, 0, 228, 160, + 2, 224, 1, 0, 228, 128, + 226, 0, 244, 160, 8, 0, + 0, 3, 2, 0, 1, 224, + 0, 0, 228, 128, 218, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 2, 224, 0, 0, + 228, 128, 219, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 2, 224, 0, 0, 228, 128, - 219, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 224, - 0, 0, 228, 128, 220, 0, + 4, 224, 0, 0, 228, 128, + 220, 0, 228, 160, 1, 0, + 0, 2, 6, 0, 7, 224, + 0, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 3, 0, 228, 128, 218, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 2, 128, 3, 0, + 228, 128, 219, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 3, 0, 228, 128, + 220, 0, 228, 160, 2, 0, + 0, 3, 4, 0, 7, 224, + 0, 0, 228, 129, 227, 0, 228, 160, 1, 0, 0, 2, - 6, 0, 7, 224, 0, 0, + 3, 0, 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 3, 0, - 228, 128, 218, 0, 228, 160, + 228, 128, 221, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 3, 0, 228, 128, - 219, 0, 228, 160, 9, 0, + 222, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 3, 0, 228, 128, 220, 0, - 228, 160, 2, 0, 0, 3, - 4, 0, 7, 224, 0, 0, - 228, 129, 227, 0, 228, 160, - 1, 0, 0, 2, 3, 0, - 7, 224, 0, 0, 228, 128, - 9, 0, 0, 3, 0, 0, - 1, 128, 3, 0, 228, 128, - 221, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 3, 0, 228, 128, 222, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 3, 0, - 228, 128, 224, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 216, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 5, 0, 8, 224, 2, 0, - 255, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 96, 5, - 0, 0, 64, 0, 1, 0, - 88, 1, 0, 0, 89, 0, + 3, 0, 228, 128, 224, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 216, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 5, 0, 8, 224, + 2, 0, 255, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 96, 5, 0, 0, 64, 0, + 1, 0, 88, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 2, 0, - 0, 0, 21, 0, 0, 0, - 89, 8, 0, 4, 70, 142, - 32, 0, 4, 0, 0, 0, - 216, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 4, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 5, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 6, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 4, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 5, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 6, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 7, 0, - 0, 0, 104, 0, 0, 2, - 5, 0, 0, 0, 38, 0, - 0, 11, 0, 208, 0, 0, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 5, 0, 0, 0, 2, 64, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 56, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 21, 16, 0, 6, 0, - 0, 0, 70, 142, 32, 4, - 4, 0, 0, 0, 26, 0, + 2, 0, 0, 0, 21, 0, + 0, 0, 89, 8, 0, 4, + 70, 142, 32, 0, 4, 0, + 0, 0, 216, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 11, 242, 0, + 95, 0, 0, 3, 114, 16, 16, 0, 1, 0, 0, 0, - 70, 142, 32, 4, 4, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 6, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 242, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 2, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 3, 0, 0, 0, - 86, 21, 16, 0, 6, 0, - 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 1, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 6, 4, 0, 0, 0, - 1, 0, 0, 0, 10, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 4, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 5, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 6, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 4, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 5, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 6, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 7, 0, 0, 0, 104, 0, + 0, 2, 5, 0, 0, 0, + 38, 0, 0, 11, 0, 208, + 0, 0, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 5, 0, 0, 0, + 2, 64, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 21, 16, 0, + 6, 0, 0, 0, 70, 142, + 32, 4, 4, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 11, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 4, + 4, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 6, 0, 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 17, 0, - 0, 7, 34, 0, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 7, 18, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 3, 0, + 70, 14, 16, 0, 1, 0, 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 4, 0, + 242, 0, 16, 0, 3, 0, 0, 0, 86, 21, 16, 0, 6, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 2, 0, 0, 0, 26, 0, + 1, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 50, 0, 0, 12, 242, 0, - 16, 0, 0, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 70, 142, 32, 6, 4, 0, - 0, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 6, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 17, 0, 0, 7, 66, 0, + 16, 0, 3, 0, 0, 0, + 17, 0, 0, 7, 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 16, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, + 3, 0, 0, 0, 56, 0, + 0, 10, 242, 0, 16, 0, + 4, 0, 0, 0, 86, 21, + 16, 0, 6, 0, 0, 0, + 70, 142, 32, 6, 4, 0, + 0, 0, 2, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 12, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 6, + 4, 0, 0, 0, 2, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 6, 16, + 16, 0, 6, 0, 0, 0, + 70, 14, 16, 0, 4, 0, + 0, 0, 17, 0, 0, 7, + 66, 0, 16, 0, 2, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 4, 0, + 54, 0, 0, 5, 130, 0, + 16, 0, 2, 0, 0, 0, + 58, 16, 16, 0, 0, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 0, 0, + 18, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 4, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 17, 0, 0, 8, 130, 32, + 0, 0, 5, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 7, 0, - 0, 0, 56, 0, 0, 8, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 50, 0, 16, 0, - 4, 0, 0, 0, 70, 16, - 16, 0, 4, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 16, 0, 0, 8, - 18, 32, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 131, + 2, 0, 0, 0, 6, 0, + 0, 0, 17, 0, 0, 8, + 130, 32, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 8, 34, 32, 16, 0, + 7, 0, 0, 0, 56, 0, + 0, 8, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 50, 0, + 16, 0, 4, 0, 0, 0, + 70, 16, 16, 0, 4, 0, + 0, 0, 54, 0, 0, 5, + 66, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 16, 0, + 0, 8, 18, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 131, 32, 0, 2, 0, - 0, 0, 17, 0, 0, 0, - 16, 0, 0, 7, 18, 0, - 16, 0, 4, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 7, 18, 32, 16, 0, - 6, 0, 0, 0, 70, 18, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 4, 0, + 0, 0, 70, 131, 32, 0, + 2, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 7, - 34, 0, 16, 0, 4, 0, + 18, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 34, 32, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 18, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 66, 0, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 16, 0, 0, 7, - 66, 32, 16, 0, 6, 0, + 34, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 18, 32, 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 4, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 7, 66, 32, 16, 0, + 6, 0, 0, 0, 70, 18, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 34, 32, 16, 0, 3, 0, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 16, 0, - 0, 8, 66, 32, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 16, 0, 0, 8, 66, 32, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, - 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 0, 0, 70, 130, 32, 0, + 2, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 5, + 114, 32, 16, 0, 7, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 17, 0, 0, 8, 66, 0, + 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 5, - 114, 32, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 114, 32, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 70, 130, + 2, 0, 0, 0, 1, 0, + 0, 0, 17, 0, 0, 8, + 66, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 20, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 6, 0, 0, 0, 58, 16, - 16, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 244, 0, 0, 0, - 7, 0, 0, 0, 8, 0, - 0, 0, 176, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 114, 32, + 16, 0, 5, 0, 0, 0, + 70, 2, 16, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 188, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 20, 0, 0, 0, + 54, 0, 0, 5, 130, 32, + 16, 0, 6, 0, 0, 0, + 58, 16, 16, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 244, 0, + 0, 0, 7, 0, 0, 0, + 8, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 195, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 15, - 0, 0, 203, 0, 0, 0, + 15, 15, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 15, 15, - 0, 0, 209, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 7, 7, 0, 0, 195, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 15, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 3, 3, - 0, 0, 218, 0, 0, 0, + 15, 15, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 5, 0, 0, 0, 15, 3, - 0, 0, 231, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 3, 3, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 78, 79, 82, 77, - 65, 76, 0, 84, 65, 78, - 71, 69, 78, 84, 0, 67, - 79, 76, 79, 82, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 66, 76, 69, 78, - 68, 73, 78, 68, 73, 67, - 69, 83, 0, 66, 76, 69, - 78, 68, 87, 69, 73, 71, - 72, 84, 0, 171, 79, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 15, 3, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 3, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 84, + 65, 78, 71, 69, 78, 84, + 0, 67, 79, 76, 79, 82, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 66, 76, + 69, 78, 68, 73, 78, 68, + 73, 67, 69, 83, 0, 66, + 76, 69, 78, 68, 87, 69, + 73, 71, 72, 84, 0, 171, + 79, 83, 71, 78, 228, 0, + 0, 0, 8, 0, 0, 0, + 8, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 212, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 12, 0, 0, 218, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, + 7, 8, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 7, 8, 0, 0, 218, 0, 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 8, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171 + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 7, 8, 0, 0, 218, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 7, 0, 0, 0, + 7, 8, 0, 0, 83, 86, + 95, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4Bones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4Bones.inc index 0ba01e255726cd8306f3bb7dd8f69181a2165d52..eeb8a888cede3602bc93a993e5c82e76a344e19d 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4Bones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4Bones.inc @@ -52,56 +52,84 @@ // vs_2_0 def c228, 3, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dcl_texcoord5 v5 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12> + dcl_texcoord4 v4 // vertex<13,14,15,16> + dcl_texcoord5 v5 // vertex<17,18,19,20> + +#line 97 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" mul r0, v4, c228.x mova a0, r0.yxzw mul r1, v5.y, c0[a0.x] - mad r1, c0[a0.y], v5.x, r1 - mad r0, c0[a0.z], v5.z, r1 - mad r0, c0[a0.w], v5.w, r0 - dp3 oT5.x, v2, r0 + mad r1, c0[a0.y], v5.x, r1 // ::skinning<0,3,6,9> + mad r0, c0[a0.z], v5.z, r1 // ::skinning<0,3,6,9> + mad r0, c0[a0.w], v5.w, r0 // ::skinning<0,3,6,9> + +#line 102 + dp3 oT5.x, v2, r0 // ::main4Bones<19> + +#line 97 mul r1, v5.y, c1[a0.x] mul r2, v5.y, c2[a0.x] - mad r2, c2[a0.y], v5.x, r2 - mad r1, c1[a0.y], v5.x, r1 - mad r1, c1[a0.z], v5.z, r1 - mad r2, c2[a0.z], v5.z, r2 - mad r2, c2[a0.w], v5.w, r2 - mad r1, c1[a0.w], v5.w, r1 - dp3 oT5.y, v2, r1 - dp3 oT5.z, v2, r2 - dp4 r3.x, v0, r0 - dp3 r0.x, v1, r0 - dp4 r3.y, v0, r1 - dp3 r0.y, v1, r1 - dp4 r3.z, v0, r2 - dp3 r0.z, v1, r2 + mad r2, c2[a0.y], v5.x, r2 // ::skinning<2,5,8,11> + mad r1, c1[a0.y], v5.x, r1 // ::skinning<1,4,7,10> + mad r1, c1[a0.z], v5.z, r1 // ::skinning<1,4,7,10> + mad r2, c2[a0.z], v5.z, r2 // ::skinning<2,5,8,11> + mad r2, c2[a0.w], v5.w, r2 // ::skinning<2,5,8,11> + mad r1, c1[a0.w], v5.w, r1 // ::skinning<1,4,7,10> + +#line 102 + dp3 oT5.y, v2, r1 // ::main4Bones<20> + dp3 oT5.z, v2, r2 // ::main4Bones<21> + dp4 r3.x, v0, r0 // Skin::vertex<0> + dp3 r0.x, v1, r0 // Skin::vertex<4> + dp4 r3.y, v0, r1 // Skin::vertex<1> + dp3 r0.y, v1, r1 // Skin::vertex<5> + dp4 r3.z, v0, r2 // Skin::vertex<2> + dp3 r0.z, v1, r2 // Skin::vertex<6> + +#line 214 mov r3.w, v0.w - dp4 oPos.z, r3, c223 + +#line 217 + dp4 oPos.z, r3, c223 // ::main4Bones<2> mad r1.xyz, v3.xyxw, c228.yyzw, c228.zzyw - dp3 oT1.x, r1, c225.xyww - dp3 oT1.y, r1, c226.xyww - dp3 oT2.x, r0, c218 - dp3 oT2.y, r0, c219 - dp3 oT2.z, r0, c220 - mov oT6.xyz, r0 - dp4 r0.x, r3, c218 - dp4 r0.y, r3, c219 - dp4 r0.z, r3, c220 - add oT4.xyz, -r0, c227 - mov oT3.xyz, r0 - dp4 r0.x, r3, c221 - dp4 r0.y, r3, c222 - dp4 r0.z, r3, c224 - mad oPos.xy, r0.z, c216, r0 - mov oPos.w, r0.z - mov oT0, c217 - mov oT5.w, v2.w + dp3 oT1.x, r1, c225.xyww // ::main4Bones<8> + dp3 oT1.y, r1, c226.xyww // ::main4Bones<9> + dp3 oT2.x, r0, c218 // ::main4Bones<10> + dp3 oT2.y, r0, c219 // ::main4Bones<11> + dp3 oT2.z, r0, c220 // ::main4Bones<12> + +#line 101 + mov oT6.xyz, r0 // ::main4Bones<23,24,25> + +#line 214 + dp4 r0.x, r3, c218 // ::wp<0> + dp4 r0.y, r3, c219 // ::wp<1> + dp4 r0.z, r3, c220 // ::wp<2> + +#line 222 + add oT4.xyz, -r0, c227 // ::main4Bones<16,17,18> + +#line 214 + mov oT3.xyz, r0 // ::main4Bones<13,14,15> + +#line 217 + dp4 r0.x, r3, c221 // ::result<0> + dp4 r0.y, r3, c222 // ::result<1> + dp4 r0.z, r3, c224 // ::result<3> + +#line 208 + mad oPos.xy, r0.z, c216, r0 // ::main4Bones<0,1> + mov oPos.w, r0.z // ::main4Bones<3> + +#line 218 + mov oT0, c217 // ::main4Bones<4,5,6,7> + +#line 102 + mov oT5.w, v2.w // ::main4Bones<22> // approximately 44 instruction slots used vs_4_0 @@ -171,17 +199,17 @@ ret const BYTE DGSLEffect_main4Bones[] = { - 68, 88, 66, 67, 232, 121, - 155, 180, 91, 47, 138, 234, - 110, 44, 58, 186, 214, 50, - 189, 50, 1, 0, 0, 0, - 72, 12, 0, 0, 4, 0, + 68, 88, 66, 67, 45, 137, + 208, 23, 220, 71, 47, 74, + 63, 1, 119, 83, 15, 78, + 96, 247, 1, 0, 0, 0, + 124, 18, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 16, 4, 0, 0, 124, 10, - 0, 0, 92, 11, 0, 0, - 65, 111, 110, 57, 216, 3, - 0, 0, 216, 3, 0, 0, - 0, 2, 254, 255, 104, 3, + 68, 10, 0, 0, 176, 16, + 0, 0, 144, 17, 0, 0, + 65, 111, 110, 57, 12, 10, + 0, 0, 12, 10, 0, 0, + 0, 2, 254, 255, 156, 9, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -199,500 +227,765 @@ const BYTE DGSLEffect_main4Bones[] = 0, 0, 2, 0, 20, 0, 1, 0, 227, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 228, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 5, 128, - 5, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 4, 0, 228, 144, 228, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 15, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 5, 0, - 85, 144, 0, 32, 228, 160, + 0, 2, 254, 255, 254, 255, + 140, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 4, 6, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 51, 0, 0, 0, + 120, 0, 0, 0, 6, 0, + 0, 0, 140, 5, 0, 0, + 16, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 56, 6, + 0, 0, 0, 0, 255, 255, + 80, 6, 0, 0, 0, 0, + 255, 255, 92, 6, 0, 0, + 0, 0, 255, 255, 104, 6, + 0, 0, 0, 0, 255, 255, + 116, 6, 0, 0, 0, 0, + 255, 255, 128, 6, 0, 0, + 0, 0, 255, 255, 140, 6, + 0, 0, 97, 0, 0, 0, + 152, 6, 0, 0, 97, 0, + 0, 0, 168, 6, 0, 0, + 97, 0, 0, 0, 180, 6, + 0, 0, 97, 0, 0, 0, + 200, 6, 0, 0, 97, 0, + 0, 0, 224, 6, 0, 0, + 97, 0, 0, 0, 248, 6, + 0, 0, 102, 0, 0, 0, + 16, 7, 0, 0, 97, 0, + 0, 0, 32, 7, 0, 0, + 97, 0, 0, 0, 52, 7, + 0, 0, 97, 0, 0, 0, + 72, 7, 0, 0, 97, 0, + 0, 0, 96, 7, 0, 0, + 97, 0, 0, 0, 120, 7, + 0, 0, 97, 0, 0, 0, + 144, 7, 0, 0, 97, 0, + 0, 0, 168, 7, 0, 0, + 97, 0, 0, 0, 192, 7, + 0, 0, 102, 0, 0, 0, + 216, 7, 0, 0, 102, 0, + 0, 0, 232, 7, 0, 0, + 100, 0, 0, 0, 248, 7, + 0, 0, 101, 0, 0, 0, + 8, 8, 0, 0, 100, 0, + 0, 0, 24, 8, 0, 0, + 101, 0, 0, 0, 40, 8, + 0, 0, 100, 0, 0, 0, + 56, 8, 0, 0, 101, 0, + 0, 0, 72, 8, 0, 0, + 214, 0, 0, 0, 88, 8, + 0, 0, 217, 0, 0, 0, + 100, 8, 0, 0, 219, 0, + 0, 0, 116, 8, 0, 0, + 219, 0, 0, 0, 136, 8, + 0, 0, 219, 0, 0, 0, + 152, 8, 0, 0, 220, 0, + 0, 0, 168, 8, 0, 0, + 220, 0, 0, 0, 184, 8, + 0, 0, 220, 0, 0, 0, + 200, 8, 0, 0, 101, 0, + 0, 0, 216, 8, 0, 0, + 214, 0, 0, 0, 228, 8, + 0, 0, 214, 0, 0, 0, + 244, 8, 0, 0, 214, 0, + 0, 0, 4, 9, 0, 0, + 222, 0, 0, 0, 20, 9, + 0, 0, 214, 0, 0, 0, + 36, 9, 0, 0, 217, 0, + 0, 0, 48, 9, 0, 0, + 217, 0, 0, 0, 64, 9, + 0, 0, 217, 0, 0, 0, + 80, 9, 0, 0, 208, 0, + 0, 0, 96, 9, 0, 0, + 208, 0, 0, 0, 116, 9, + 0, 0, 218, 0, 0, 0, + 128, 9, 0, 0, 102, 0, + 0, 0, 140, 9, 0, 0, + 109, 97, 105, 110, 52, 66, + 111, 110, 101, 115, 0, 112, + 111, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 27, 2, 0, 0, 32, 2, + 0, 0, 48, 2, 0, 0, + 32, 2, 0, 0, 56, 2, + 0, 0, 60, 2, 0, 0, + 76, 2, 0, 0, 88, 2, + 0, 0, 104, 2, 0, 0, + 88, 2, 0, 0, 113, 2, + 0, 0, 88, 2, 0, 0, + 119, 2, 0, 0, 32, 2, + 0, 0, 127, 2, 0, 0, + 88, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 136, 2, + 0, 0, 13, 0, 0, 0, + 19, 0, 255, 255, 255, 255, + 255, 255, 22, 0, 0, 0, + 255, 255, 20, 0, 255, 255, + 255, 255, 23, 0, 0, 0, + 255, 255, 255, 255, 21, 0, + 255, 255, 31, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 33, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 34, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 35, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 36, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 37, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 38, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 42, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 43, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 47, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 48, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 49, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 50, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 136, 2, + 0, 0, 44, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 45, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 46, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 11, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 12, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 16, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 17, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 18, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 19, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 20, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 21, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 83, 107, 105, 110, 0, 118, + 101, 114, 116, 101, 120, 0, + 98, 111, 110, 101, 73, 110, + 100, 105, 99, 101, 115, 0, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 98, 108, + 101, 110, 100, 87, 101, 105, + 103, 104, 116, 115, 0, 171, + 171, 171, 27, 2, 0, 0, + 32, 2, 0, 0, 127, 2, + 0, 0, 88, 2, 0, 0, + 119, 2, 0, 0, 32, 2, + 0, 0, 56, 2, 0, 0, + 60, 2, 0, 0, 104, 4, + 0, 0, 116, 4, 0, 0, + 132, 4, 0, 0, 32, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 21, 0, 1, 0, + 6, 0, 148, 4, 0, 0, + 24, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 25, 0, 0, 0, 4, 0, + 255, 255, 255, 255, 255, 255, + 26, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 27, 0, 0, 0, 255, 255, + 5, 0, 255, 255, 255, 255, + 28, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 29, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 255, 255, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 9, 0, 10, 0, + 4, 0, 0, 0, 11, 0, + 12, 0, 255, 255, 255, 255, + 5, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 16, 0, + 6, 0, 0, 0, 17, 0, + 18, 0, 19, 0, 20, 0, + 119, 112, 0, 171, 39, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 40, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 41, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 0, 0, + 0, 0, 16, 2, 0, 0, + 200, 2, 0, 0, 16, 0, + 0, 0, 216, 2, 0, 0, + 0, 0, 0, 0, 152, 3, + 0, 0, 160, 3, 0, 0, + 3, 0, 0, 0, 176, 3, + 0, 0, 0, 0, 0, 0, + 212, 3, 0, 0, 224, 3, + 0, 0, 9, 0, 0, 0, + 240, 3, 0, 0, 92, 4, + 0, 0, 97, 4, 0, 0, + 196, 4, 0, 0, 6, 0, + 0, 0, 212, 4, 0, 0, + 16, 2, 0, 0, 97, 4, + 0, 0, 196, 4, 0, 0, + 6, 0, 0, 0, 28, 5, + 0, 0, 0, 0, 0, 0, + 100, 5, 0, 0, 88, 2, + 0, 0, 3, 0, 0, 0, + 104, 5, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 228, 0, 15, 160, 0, 0, + 64, 64, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 3, 128, 3, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 4, 128, 4, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 5, 128, 5, 0, + 15, 144, 5, 0, 0, 3, + 0, 0, 15, 128, 4, 0, + 228, 144, 228, 0, 0, 160, + 46, 0, 0, 2, 0, 0, + 15, 176, 0, 0, 225, 128, + 5, 0, 0, 4, 1, 0, + 15, 128, 5, 0, 85, 144, + 0, 32, 228, 160, 0, 0, + 0, 176, 4, 0, 0, 5, + 1, 0, 15, 128, 0, 32, + 228, 160, 0, 0, 85, 176, + 5, 0, 0, 144, 1, 0, + 228, 128, 4, 0, 0, 5, + 0, 0, 15, 128, 0, 32, + 228, 160, 0, 0, 170, 176, + 5, 0, 170, 144, 1, 0, + 228, 128, 4, 0, 0, 5, + 0, 0, 15, 128, 0, 32, + 228, 160, 0, 0, 255, 176, + 5, 0, 255, 144, 0, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 1, 224, 2, 0, + 228, 144, 0, 0, 228, 128, + 5, 0, 0, 4, 1, 0, + 15, 128, 5, 0, 85, 144, + 1, 32, 228, 160, 0, 0, + 0, 176, 5, 0, 0, 4, + 2, 0, 15, 128, 5, 0, + 85, 144, 2, 32, 228, 160, 0, 0, 0, 176, 4, 0, + 0, 5, 2, 0, 15, 128, + 2, 32, 228, 160, 0, 0, + 85, 176, 5, 0, 0, 144, + 2, 0, 228, 128, 4, 0, 0, 5, 1, 0, 15, 128, - 0, 32, 228, 160, 0, 0, + 1, 32, 228, 160, 0, 0, 85, 176, 5, 0, 0, 144, 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 0, 32, 228, 160, 0, 0, + 0, 5, 1, 0, 15, 128, + 1, 32, 228, 160, 0, 0, 170, 176, 5, 0, 170, 144, 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 0, 32, 228, 160, 0, 0, + 0, 5, 2, 0, 15, 128, + 2, 32, 228, 160, 0, 0, + 170, 176, 5, 0, 170, 144, + 2, 0, 228, 128, 4, 0, + 0, 5, 2, 0, 15, 128, + 2, 32, 228, 160, 0, 0, + 255, 176, 5, 0, 255, 144, + 2, 0, 228, 128, 4, 0, + 0, 5, 1, 0, 15, 128, + 1, 32, 228, 160, 0, 0, 255, 176, 5, 0, 255, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 1, 224, - 2, 0, 228, 144, 0, 0, - 228, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 5, 0, - 85, 144, 1, 32, 228, 160, - 0, 0, 0, 176, 5, 0, - 0, 4, 2, 0, 15, 128, - 5, 0, 85, 144, 2, 32, - 228, 160, 0, 0, 0, 176, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 85, 176, 5, 0, - 0, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, - 0, 0, 85, 176, 5, 0, - 0, 144, 1, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, - 0, 0, 170, 176, 5, 0, - 170, 144, 1, 0, 228, 128, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 170, 176, 5, 0, - 170, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 255, 176, 5, 0, - 255, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, - 0, 0, 255, 176, 5, 0, - 255, 144, 1, 0, 228, 128, - 8, 0, 0, 3, 5, 0, - 2, 224, 2, 0, 228, 144, 1, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 4, 224, - 2, 0, 228, 144, 2, 0, + 0, 3, 5, 0, 2, 224, + 2, 0, 228, 144, 1, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 4, 224, 2, 0, + 228, 144, 2, 0, 228, 128, + 9, 0, 0, 3, 3, 0, + 1, 128, 0, 0, 228, 144, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 144, 0, 0, 228, 128, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, + 3, 0, 2, 128, 0, 0, + 228, 144, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 3, 0, 2, 128, - 0, 0, 228, 144, 1, 0, + 2, 128, 1, 0, 228, 144, + 1, 0, 228, 128, 9, 0, + 0, 3, 3, 0, 4, 128, + 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 1, 0, 228, 128, - 9, 0, 0, 3, 3, 0, - 4, 128, 0, 0, 228, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 3, 0, - 228, 128, 223, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 7, 128, 3, 0, 196, 144, - 228, 0, 229, 160, 228, 0, - 218, 160, 8, 0, 0, 3, - 1, 0, 1, 224, 1, 0, - 228, 128, 225, 0, 244, 160, + 0, 0, 4, 128, 1, 0, + 228, 144, 2, 0, 228, 128, + 1, 0, 0, 2, 3, 0, + 8, 128, 0, 0, 255, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 3, 0, 228, 128, + 223, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 3, 0, 196, 144, 228, 0, + 229, 160, 228, 0, 218, 160, 8, 0, 0, 3, 1, 0, - 2, 224, 1, 0, 228, 128, - 226, 0, 244, 160, 8, 0, - 0, 3, 2, 0, 1, 224, - 0, 0, 228, 128, 218, 0, - 228, 160, 8, 0, 0, 3, - 2, 0, 2, 224, 0, 0, - 228, 128, 219, 0, 228, 160, + 1, 224, 1, 0, 228, 128, + 225, 0, 244, 160, 8, 0, + 0, 3, 1, 0, 2, 224, + 1, 0, 228, 128, 226, 0, + 244, 160, 8, 0, 0, 3, + 2, 0, 1, 224, 0, 0, + 228, 128, 218, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 4, 224, 0, 0, 228, 128, - 220, 0, 228, 160, 1, 0, - 0, 2, 6, 0, 7, 224, - 0, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 1, 128, - 3, 0, 228, 128, 218, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 3, 0, - 228, 128, 219, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 128, 3, 0, 228, 128, - 220, 0, 228, 160, 2, 0, - 0, 3, 4, 0, 7, 224, - 0, 0, 228, 129, 227, 0, + 2, 224, 0, 0, 228, 128, + 219, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 4, 224, + 0, 0, 228, 128, 220, 0, 228, 160, 1, 0, 0, 2, - 3, 0, 7, 224, 0, 0, + 6, 0, 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 3, 0, - 228, 128, 221, 0, 228, 160, + 228, 128, 218, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 3, 0, 228, 128, - 222, 0, 228, 160, 9, 0, + 219, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 3, 0, 228, 128, 224, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 216, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 217, 0, 228, 160, 1, 0, - 0, 2, 5, 0, 8, 224, - 2, 0, 255, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 100, 6, 0, 0, 64, 0, - 1, 0, 153, 1, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 89, 0, + 3, 0, 228, 128, 220, 0, + 228, 160, 2, 0, 0, 3, + 4, 0, 7, 224, 0, 0, + 228, 129, 227, 0, 228, 160, + 1, 0, 0, 2, 3, 0, + 7, 224, 0, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 1, 128, 3, 0, 228, 128, + 221, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 3, 0, 228, 128, 222, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 3, 0, + 228, 128, 224, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 216, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 217, 0, + 228, 160, 1, 0, 0, 2, + 5, 0, 8, 224, 2, 0, + 255, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 100, 6, + 0, 0, 64, 0, 1, 0, + 153, 1, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 2, 0, 0, 0, 21, 0, - 0, 0, 89, 8, 0, 4, - 70, 142, 32, 0, 4, 0, - 0, 0, 216, 0, 0, 0, - 95, 0, 0, 3, 242, 16, + 0, 0, 0, 0, 2, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 2, 0, + 0, 0, 21, 0, 0, 0, + 89, 8, 0, 4, 70, 142, + 32, 0, 4, 0, 0, 0, + 216, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 3, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 4, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 5, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 4, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 5, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 6, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 7, 0, + 0, 0, 104, 0, 0, 2, + 5, 0, 0, 0, 38, 0, + 0, 11, 0, 208, 0, 0, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 4, 0, 0, 0, 2, 64, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 56, 0, 0, 9, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 21, 16, 0, 5, 0, + 0, 0, 70, 142, 32, 4, + 4, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, + 50, 0, 0, 11, 242, 0, 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 2, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 4, 0, 0, 0, - 95, 0, 0, 3, 242, 16, + 70, 142, 32, 4, 4, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 6, 16, 16, 0, 5, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 4, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 5, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 6, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 7, 0, 0, 0, 104, 0, - 0, 2, 5, 0, 0, 0, - 38, 0, 0, 11, 0, 208, - 0, 0, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 4, 0, 0, 0, - 2, 64, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 56, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 21, 16, 0, - 5, 0, 0, 0, 70, 142, - 32, 4, 4, 0, 0, 0, - 26, 0, 16, 0, 0, 0, + 70, 14, 16, 0, 1, 0, 0, 0, 50, 0, 0, 11, 242, 0, 16, 0, 1, 0, 0, 0, 70, 142, 32, 4, - 4, 0, 0, 0, 10, 0, + 4, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 5, 0, + 166, 26, 16, 0, 5, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 50, 0, 0, 11, 242, 0, 16, 0, 1, 0, 0, 0, 70, 142, 32, 4, 4, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 166, 26, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, 5, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 4, 4, 0, + 17, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 10, 242, 0, 16, 0, + 3, 0, 0, 0, 86, 21, + 16, 0, 5, 0, 0, 0, + 70, 142, 32, 6, 4, 0, + 0, 0, 1, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 12, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 142, 32, 6, + 4, 0, 0, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 6, 16, + 16, 0, 5, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 50, 0, 0, 12, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 142, 32, 6, + 4, 0, 0, 0, 1, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 166, 26, + 16, 0, 5, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 50, 0, 0, 12, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 142, 32, 6, + 4, 0, 0, 0, 1, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 246, 31, 16, 0, 5, 0, 0, 0, - 70, 14, 16, 0, 1, 0, + 70, 14, 16, 0, 3, 0, 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 2, 0, + 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 242, 0, 16, 0, 3, 0, 0, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 4, 0, 0, 0, 86, 21, 16, 0, 5, 0, 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 1, 0, + 4, 0, 0, 0, 2, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 50, 0, 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 4, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 1, 0, 0, 0, 10, 0, + 2, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 5, 0, 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, + 4, 0, 0, 0, 50, 0, 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 4, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 1, 0, 0, 0, 42, 0, + 2, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, 166, 26, 16, 0, 5, 0, 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, + 4, 0, 0, 0, 50, 0, 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 0, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 1, 0, 0, 0, 58, 0, + 2, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 246, 31, 16, 0, 5, 0, 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 17, 0, - 0, 7, 34, 0, 16, 0, + 4, 0, 0, 0, 17, 0, + 0, 7, 66, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 4, 0, - 0, 0, 86, 21, 16, 0, - 5, 0, 0, 0, 70, 142, - 32, 6, 4, 0, 0, 0, - 2, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 4, 0, - 0, 0, 2, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 5, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 4, 0, - 0, 0, 2, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 166, 26, 16, 0, - 5, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 6, 4, 0, - 0, 0, 2, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 5, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 17, 0, 0, 7, 66, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 2, 0, + 0, 0, 58, 16, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, + 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 16, - 16, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, + 70, 142, 32, 0, 2, 0, + 0, 0, 4, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 4, 0, + 2, 0, 0, 0, 5, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 0, 0, + 66, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 6, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 17, 0, 0, 8, 130, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 50, 0, + 16, 0, 4, 0, 0, 0, + 70, 16, 16, 0, 3, 0, 0, 0, 54, 0, 0, 5, - 50, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 3, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 16, 0, 0, 8, 18, 32, + 66, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 16, 0, + 0, 8, 18, 32, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 70, 131, 32, 0, 2, 0, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 131, 32, 0, - 2, 0, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 8, - 34, 32, 16, 0, 2, 0, + 2, 0, 0, 0, 17, 0, + 0, 0, 16, 0, 0, 7, + 18, 0, 16, 0, 4, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 18, 32, + 16, 0, 6, 0, 0, 0, + 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 131, - 32, 0, 2, 0, 0, 0, - 17, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 16, 0, 0, 7, - 18, 32, 16, 0, 6, 0, + 34, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 34, 0, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 66, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 32, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 7, 66, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 4, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 66, 32, - 16, 0, 6, 0, 0, 0, - 70, 18, 16, 0, 2, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 8, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 70, 130, + 32, 0, 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 8, 18, 32, 16, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 34, 32, + 0, 0, 1, 0, 0, 0, + 16, 0, 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 66, 32, 16, 0, 3, 0, + 2, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 5, + 114, 32, 16, 0, 7, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 130, - 32, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 5, 114, 32, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 18, 0, + 4, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 2, 0, 0, 0, - 70, 142, 32, 0, 2, 0, + 2, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 114, 32, + 16, 0, 5, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 20, 0, 0, 0, + 54, 0, 0, 5, 130, 32, + 16, 0, 6, 0, 0, 0, + 58, 16, 16, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 216, 0, + 0, 0, 6, 0, 0, 0, + 8, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 164, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 7, 7, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 9, - 114, 32, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 20, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 6, 0, - 0, 0, 58, 16, 16, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 216, 0, 0, 0, 6, 0, - 0, 0, 8, 0, 0, 0, - 152, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 3, 3, 0, 0, 188, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 4, 0, 0, 0, + 15, 15, 0, 0, 201, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 84, + 65, 78, 71, 69, 78, 84, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 66, 76, + 69, 78, 68, 73, 78, 68, + 73, 67, 69, 83, 0, 66, + 76, 69, 78, 68, 87, 69, + 73, 71, 72, 84, 0, 171, + 171, 171, 79, 83, 71, 78, + 228, 0, 0, 0, 8, 0, + 0, 0, 8, 0, 0, 0, + 200, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 164, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 171, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 179, 0, 0, 0, 0, 0, + 0, 0, 3, 12, 0, 0, + 218, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, - 0, 0, 3, 3, 0, 0, - 188, 0, 0, 0, 0, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 4, 0, - 0, 0, 15, 15, 0, 0, - 201, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 65, 78, 71, 69, - 78, 84, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 66, 76, 69, 78, 68, 73, - 78, 68, 73, 67, 69, 83, - 0, 66, 76, 69, 78, 68, - 87, 69, 73, 71, 72, 84, - 0, 171, 171, 171, 79, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 6, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 8, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 8, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171 + 3, 0, 0, 0, 7, 0, + 0, 0, 7, 8, 0, 0, + 83, 86, 95, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4BonesVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4BonesVc.inc index edd96cd719baeb4e8c49062c9e7a67dc8d317b2d..0535026233af25606125e76af4a4ea1ee1a93eb6 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4BonesVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_main4BonesVc.inc @@ -53,57 +53,83 @@ // vs_2_0 def c228, 3, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dcl_texcoord5 v5 - dcl_texcoord6 v6 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12,13,14> + dcl_texcoord4 v4 // vertex<15,16> + dcl_texcoord5 v5 // vertex<17,18,19,20> + dcl_texcoord6 v6 // vertex<21,22,23,24> + +#line 112 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" mul r0, v5, c228.x mova a0, r0.yxzw mul r1, v6.y, c0[a0.x] - mad r1, c0[a0.y], v6.x, r1 - mad r0, c0[a0.z], v6.z, r1 - mad r0, c0[a0.w], v6.w, r0 - dp3 oT5.x, v2, r0 + mad r1, c0[a0.y], v6.x, r1 // ::skinning<0,3,6,9> + mad r0, c0[a0.z], v6.z, r1 // ::skinning<0,3,6,9> + mad r0, c0[a0.w], v6.w, r0 // ::skinning<0,3,6,9> + +#line 117 + dp3 oT5.x, v2, r0 // ::main4BonesVc<19> + +#line 112 mul r1, v6.y, c1[a0.x] mul r2, v6.y, c2[a0.x] - mad r2, c2[a0.y], v6.x, r2 - mad r1, c1[a0.y], v6.x, r1 - mad r1, c1[a0.z], v6.z, r1 - mad r2, c2[a0.z], v6.z, r2 - mad r2, c2[a0.w], v6.w, r2 - mad r1, c1[a0.w], v6.w, r1 - dp3 oT5.y, v2, r1 - dp3 oT5.z, v2, r2 - dp4 r3.x, v0, r0 - dp3 r0.x, v1, r0 - dp4 r3.y, v0, r1 - dp3 r0.y, v1, r1 - dp4 r3.z, v0, r2 - dp3 r0.z, v1, r2 + mad r2, c2[a0.y], v6.x, r2 // ::skinning<2,5,8,11> + mad r1, c1[a0.y], v6.x, r1 // ::skinning<1,4,7,10> + mad r1, c1[a0.z], v6.z, r1 // ::skinning<1,4,7,10> + mad r2, c2[a0.z], v6.z, r2 // ::skinning<2,5,8,11> + mad r2, c2[a0.w], v6.w, r2 // ::skinning<2,5,8,11> + mad r1, c1[a0.w], v6.w, r1 // ::skinning<1,4,7,10> + +#line 117 + dp3 oT5.y, v2, r1 // ::main4BonesVc<20> + dp3 oT5.z, v2, r2 // ::main4BonesVc<21> + dp4 r3.x, v0, r0 // SkinVc::vertex<0> + dp3 r0.x, v1, r0 // SkinVc::vertex<4> + dp4 r3.y, v0, r1 // SkinVc::vertex<1> + dp3 r0.y, v1, r1 // SkinVc::vertex<5> + dp4 r3.z, v0, r2 // SkinVc::vertex<2> + dp3 r0.z, v1, r2 // SkinVc::vertex<6> + +#line 281 mov r3.w, v0.w - dp4 oPos.z, r3, c223 - mul oT0, v3, c217 + +#line 284 + dp4 oPos.z, r3, c223 // ::main4BonesVc<2> + mul oT0, v3, c217 // ::main4BonesVc<4,5,6,7> mad r1.xyz, v4.xyxw, c228.yyzw, c228.zzyw - dp3 oT1.x, r1, c225.xyww - dp3 oT1.y, r1, c226.xyww - dp3 oT2.x, r0, c218 - dp3 oT2.y, r0, c219 - dp3 oT2.z, r0, c220 - mov oT6.xyz, r0 - dp4 r0.x, r3, c218 - dp4 r0.y, r3, c219 - dp4 r0.z, r3, c220 - add oT4.xyz, -r0, c227 - mov oT3.xyz, r0 - dp4 r0.x, r3, c221 - dp4 r0.y, r3, c222 - dp4 r0.z, r3, c224 - mad oPos.xy, r0.z, c216, r0 - mov oPos.w, r0.z - mov oT5.w, v2.w + dp3 oT1.x, r1, c225.xyww // ::main4BonesVc<8> + dp3 oT1.y, r1, c226.xyww // ::main4BonesVc<9> + dp3 oT2.x, r0, c218 // ::main4BonesVc<10> + dp3 oT2.y, r0, c219 // ::main4BonesVc<11> + dp3 oT2.z, r0, c220 // ::main4BonesVc<12> + +#line 116 + mov oT6.xyz, r0 // ::main4BonesVc<23,24,25> + +#line 281 + dp4 r0.x, r3, c218 // ::wp<0> + dp4 r0.y, r3, c219 // ::wp<1> + dp4 r0.z, r3, c220 // ::wp<2> + +#line 289 + add oT4.xyz, -r0, c227 // ::main4BonesVc<16,17,18> + +#line 281 + mov oT3.xyz, r0 // ::main4BonesVc<13,14,15> + +#line 284 + dp4 r0.x, r3, c221 // ::result<0> + dp4 r0.y, r3, c222 // ::result<1> + dp4 r0.z, r3, c224 // ::result<3> + +#line 275 + mad oPos.xy, r0.z, c216, r0 // ::main4BonesVc<0,1> + mov oPos.w, r0.z // ::main4BonesVc<3> + +#line 117 + mov oT5.w, v2.w // ::main4BonesVc<22> // approximately 44 instruction slots used vs_4_0 @@ -174,17 +200,17 @@ ret const BYTE DGSLEffect_main4BonesVc[] = { - 68, 88, 66, 67, 232, 20, - 197, 8, 28, 104, 152, 172, - 111, 129, 163, 88, 193, 142, - 231, 122, 1, 0, 0, 0, - 136, 12, 0, 0, 4, 0, + 68, 88, 66, 67, 178, 12, + 145, 116, 251, 101, 57, 238, + 157, 61, 44, 74, 40, 241, + 240, 56, 1, 0, 0, 0, + 228, 18, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 32, 4, 0, 0, 160, 10, - 0, 0, 156, 11, 0, 0, - 65, 111, 110, 57, 232, 3, - 0, 0, 232, 3, 0, 0, - 0, 2, 254, 255, 120, 3, + 124, 10, 0, 0, 252, 16, + 0, 0, 248, 17, 0, 0, + 65, 111, 110, 57, 68, 10, + 0, 0, 68, 10, 0, 0, + 0, 2, 254, 255, 212, 9, 0, 0, 112, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -202,511 +228,782 @@ const BYTE DGSLEffect_main4BonesVc[] = 0, 0, 2, 0, 20, 0, 1, 0, 227, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 228, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 5, 128, - 5, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 6, 128, - 6, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 5, 0, 228, 144, 228, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 15, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 85, 144, 0, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 1, 0, 15, 128, - 0, 32, 228, 160, 0, 0, - 85, 176, 6, 0, 0, 144, - 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 0, 32, 228, 160, 0, 0, - 170, 176, 6, 0, 170, 144, - 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 0, 32, 228, 160, 0, 0, - 255, 176, 6, 0, 255, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 1, 224, - 2, 0, 228, 144, 0, 0, - 228, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 85, 144, 1, 32, 228, 160, - 0, 0, 0, 176, 5, 0, - 0, 4, 2, 0, 15, 128, - 6, 0, 85, 144, 2, 32, + 0, 2, 254, 255, 254, 255, + 150, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 44, 6, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 52, 0, 0, 0, + 120, 0, 0, 0, 6, 0, + 0, 0, 180, 5, 0, 0, + 24, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 96, 6, + 0, 0, 0, 0, 255, 255, + 120, 6, 0, 0, 0, 0, + 255, 255, 132, 6, 0, 0, + 0, 0, 255, 255, 144, 6, + 0, 0, 0, 0, 255, 255, + 156, 6, 0, 0, 0, 0, + 255, 255, 168, 6, 0, 0, + 0, 0, 255, 255, 180, 6, + 0, 0, 0, 0, 255, 255, + 192, 6, 0, 0, 112, 0, + 0, 0, 204, 6, 0, 0, + 112, 0, 0, 0, 220, 6, + 0, 0, 112, 0, 0, 0, + 232, 6, 0, 0, 112, 0, + 0, 0, 252, 6, 0, 0, + 112, 0, 0, 0, 20, 7, + 0, 0, 112, 0, 0, 0, + 44, 7, 0, 0, 117, 0, + 0, 0, 68, 7, 0, 0, + 112, 0, 0, 0, 84, 7, + 0, 0, 112, 0, 0, 0, + 104, 7, 0, 0, 112, 0, + 0, 0, 124, 7, 0, 0, + 112, 0, 0, 0, 148, 7, + 0, 0, 112, 0, 0, 0, + 172, 7, 0, 0, 112, 0, + 0, 0, 196, 7, 0, 0, + 112, 0, 0, 0, 220, 7, + 0, 0, 112, 0, 0, 0, + 244, 7, 0, 0, 117, 0, + 0, 0, 12, 8, 0, 0, + 117, 0, 0, 0, 28, 8, + 0, 0, 115, 0, 0, 0, + 44, 8, 0, 0, 116, 0, + 0, 0, 60, 8, 0, 0, + 115, 0, 0, 0, 76, 8, + 0, 0, 116, 0, 0, 0, + 92, 8, 0, 0, 115, 0, + 0, 0, 108, 8, 0, 0, + 116, 0, 0, 0, 124, 8, + 0, 0, 25, 1, 0, 0, + 140, 8, 0, 0, 28, 1, + 0, 0, 152, 8, 0, 0, + 29, 1, 0, 0, 168, 8, + 0, 0, 30, 1, 0, 0, + 184, 8, 0, 0, 30, 1, + 0, 0, 204, 8, 0, 0, + 30, 1, 0, 0, 220, 8, + 0, 0, 31, 1, 0, 0, + 236, 8, 0, 0, 31, 1, + 0, 0, 252, 8, 0, 0, + 31, 1, 0, 0, 12, 9, + 0, 0, 116, 0, 0, 0, + 28, 9, 0, 0, 25, 1, + 0, 0, 40, 9, 0, 0, + 25, 1, 0, 0, 56, 9, + 0, 0, 25, 1, 0, 0, + 72, 9, 0, 0, 33, 1, + 0, 0, 88, 9, 0, 0, + 25, 1, 0, 0, 104, 9, + 0, 0, 28, 1, 0, 0, + 116, 9, 0, 0, 28, 1, + 0, 0, 132, 9, 0, 0, + 28, 1, 0, 0, 148, 9, + 0, 0, 19, 1, 0, 0, + 164, 9, 0, 0, 19, 1, + 0, 0, 184, 9, 0, 0, + 117, 0, 0, 0, 196, 9, + 0, 0, 109, 97, 105, 110, + 52, 66, 111, 110, 101, 115, + 86, 99, 0, 112, 111, 115, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 37, 2, 0, 0, 44, 2, + 0, 0, 60, 2, 0, 0, + 44, 2, 0, 0, 68, 2, + 0, 0, 72, 2, 0, 0, + 88, 2, 0, 0, 100, 2, + 0, 0, 116, 2, 0, 0, + 100, 2, 0, 0, 125, 2, + 0, 0, 100, 2, 0, 0, + 131, 2, 0, 0, 44, 2, + 0, 0, 139, 2, 0, 0, + 100, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 148, 2, + 0, 0, 14, 0, 0, 0, + 19, 0, 255, 255, 255, 255, + 255, 255, 23, 0, 0, 0, + 255, 255, 20, 0, 255, 255, + 255, 255, 24, 0, 0, 0, + 255, 255, 255, 255, 21, 0, + 255, 255, 32, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 33, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 35, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 36, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 37, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 38, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 39, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 40, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 44, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 45, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 49, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 50, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 51, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 148, 2, + 0, 0, 46, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 47, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 48, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 12, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 13, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 17, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 18, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 19, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 20, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 21, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 22, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 83, 107, 105, 110, 86, 99, + 0, 118, 101, 114, 116, 101, + 120, 0, 99, 111, 108, 111, + 114, 0, 98, 111, 110, 101, + 73, 110, 100, 105, 99, 101, + 115, 0, 1, 0, 2, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 98, 108, 101, 110, 100, 87, + 101, 105, 103, 104, 116, 115, + 0, 171, 171, 171, 37, 2, + 0, 0, 44, 2, 0, 0, + 139, 2, 0, 0, 100, 2, + 0, 0, 131, 2, 0, 0, + 44, 2, 0, 0, 118, 4, + 0, 0, 44, 2, 0, 0, + 68, 2, 0, 0, 72, 2, + 0, 0, 124, 4, 0, 0, + 136, 4, 0, 0, 152, 4, + 0, 0, 44, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 25, 0, 1, 0, 7, 0, + 168, 4, 0, 0, 25, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 26, 0, + 0, 0, 4, 0, 255, 255, + 255, 255, 255, 255, 27, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 28, 0, + 0, 0, 255, 255, 5, 0, + 255, 255, 255, 255, 29, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 30, 0, + 0, 0, 255, 255, 255, 255, + 6, 0, 255, 255, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 3, 0, + 0, 0, 7, 0, 8, 0, + 9, 0, 10, 0, 4, 0, + 0, 0, 11, 0, 12, 0, + 13, 0, 14, 0, 5, 0, + 0, 0, 15, 0, 16, 0, + 255, 255, 255, 255, 6, 0, + 0, 0, 17, 0, 18, 0, + 19, 0, 20, 0, 7, 0, + 0, 0, 21, 0, 22, 0, + 23, 0, 24, 0, 119, 112, + 0, 171, 41, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 42, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 43, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 0, 0, 0, 0, + 24, 2, 0, 0, 212, 2, + 0, 0, 16, 0, 0, 0, + 228, 2, 0, 0, 0, 0, + 0, 0, 164, 3, 0, 0, + 172, 3, 0, 0, 3, 0, + 0, 0, 188, 3, 0, 0, + 0, 0, 0, 0, 224, 3, + 0, 0, 236, 3, 0, 0, + 9, 0, 0, 0, 252, 3, + 0, 0, 104, 4, 0, 0, + 111, 4, 0, 0, 224, 4, + 0, 0, 6, 0, 0, 0, + 240, 4, 0, 0, 24, 2, + 0, 0, 111, 4, 0, 0, + 224, 4, 0, 0, 7, 0, + 0, 0, 56, 5, 0, 0, + 0, 0, 0, 0, 140, 5, + 0, 0, 100, 2, 0, 0, + 3, 0, 0, 0, 144, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 228, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 5, 128, 5, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 6, 128, 6, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 15, 128, 5, 0, 228, 144, + 228, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 15, 176, + 0, 0, 225, 128, 5, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 85, 144, 0, 32, 228, 160, 0, 0, 0, 176, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 85, 176, 6, 0, - 0, 144, 2, 0, 228, 128, 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, + 15, 128, 0, 32, 228, 160, 0, 0, 85, 176, 6, 0, 0, 144, 1, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, + 4, 0, 0, 5, 0, 0, + 15, 128, 0, 32, 228, 160, 0, 0, 170, 176, 6, 0, 170, 144, 1, 0, 228, 128, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, - 0, 0, 170, 176, 6, 0, - 170, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 2, 0, - 15, 128, 2, 32, 228, 160, + 4, 0, 0, 5, 0, 0, + 15, 128, 0, 32, 228, 160, 0, 0, 255, 176, 6, 0, - 255, 144, 2, 0, 228, 128, - 4, 0, 0, 5, 1, 0, - 15, 128, 1, 32, 228, 160, - 0, 0, 255, 176, 6, 0, - 255, 144, 1, 0, 228, 128, + 255, 144, 0, 0, 228, 128, 8, 0, 0, 3, 5, 0, - 2, 224, 2, 0, 228, 144, - 1, 0, 228, 128, 8, 0, - 0, 3, 5, 0, 4, 224, - 2, 0, 228, 144, 2, 0, - 228, 128, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 3, 0, 2, 128, - 0, 0, 228, 144, 1, 0, + 1, 224, 2, 0, 228, 144, + 0, 0, 228, 128, 5, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 85, 144, 1, 32, + 228, 160, 0, 0, 0, 176, + 5, 0, 0, 4, 2, 0, + 15, 128, 6, 0, 85, 144, + 2, 32, 228, 160, 0, 0, + 0, 176, 4, 0, 0, 5, + 2, 0, 15, 128, 2, 32, + 228, 160, 0, 0, 85, 176, + 6, 0, 0, 144, 2, 0, + 228, 128, 4, 0, 0, 5, + 1, 0, 15, 128, 1, 32, + 228, 160, 0, 0, 85, 176, + 6, 0, 0, 144, 1, 0, + 228, 128, 4, 0, 0, 5, + 1, 0, 15, 128, 1, 32, + 228, 160, 0, 0, 170, 176, + 6, 0, 170, 144, 1, 0, + 228, 128, 4, 0, 0, 5, + 2, 0, 15, 128, 2, 32, + 228, 160, 0, 0, 170, 176, + 6, 0, 170, 144, 2, 0, + 228, 128, 4, 0, 0, 5, + 2, 0, 15, 128, 2, 32, + 228, 160, 0, 0, 255, 176, + 6, 0, 255, 144, 2, 0, + 228, 128, 4, 0, 0, 5, + 1, 0, 15, 128, 1, 32, + 228, 160, 0, 0, 255, 176, + 6, 0, 255, 144, 1, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, + 5, 0, 2, 224, 2, 0, 228, 144, 1, 0, 228, 128, + 8, 0, 0, 3, 5, 0, + 4, 224, 2, 0, 228, 144, + 2, 0, 228, 128, 9, 0, + 0, 3, 3, 0, 1, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 0, 0, 228, 128, 9, 0, 0, 3, 3, 0, - 4, 128, 0, 0, 228, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 3, 0, - 228, 128, 223, 0, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 224, 3, 0, 228, 144, - 217, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 4, 0, 196, 144, 228, 0, - 229, 160, 228, 0, 218, 160, + 2, 128, 0, 0, 228, 144, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 1, 0, + 228, 128, 9, 0, 0, 3, + 3, 0, 4, 128, 0, 0, + 228, 144, 2, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 4, 128, 1, 0, 228, 144, + 2, 0, 228, 128, 1, 0, + 0, 2, 3, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 0, 0, 4, 192, + 3, 0, 228, 128, 223, 0, + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 224, 3, 0, + 228, 144, 217, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 4, 0, 196, 144, + 228, 0, 229, 160, 228, 0, + 218, 160, 8, 0, 0, 3, + 1, 0, 1, 224, 1, 0, + 228, 128, 225, 0, 244, 160, 8, 0, 0, 3, 1, 0, - 1, 224, 1, 0, 228, 128, - 225, 0, 244, 160, 8, 0, - 0, 3, 1, 0, 2, 224, - 1, 0, 228, 128, 226, 0, - 244, 160, 8, 0, 0, 3, - 2, 0, 1, 224, 0, 0, - 228, 128, 218, 0, 228, 160, + 2, 224, 1, 0, 228, 128, + 226, 0, 244, 160, 8, 0, + 0, 3, 2, 0, 1, 224, + 0, 0, 228, 128, 218, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 2, 224, 0, 0, + 228, 128, 219, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 2, 224, 0, 0, 228, 128, - 219, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 224, - 0, 0, 228, 128, 220, 0, + 4, 224, 0, 0, 228, 128, + 220, 0, 228, 160, 1, 0, + 0, 2, 6, 0, 7, 224, + 0, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 3, 0, 228, 128, 218, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 2, 128, 3, 0, + 228, 128, 219, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 128, 3, 0, 228, 128, + 220, 0, 228, 160, 2, 0, + 0, 3, 4, 0, 7, 224, + 0, 0, 228, 129, 227, 0, 228, 160, 1, 0, 0, 2, - 6, 0, 7, 224, 0, 0, + 3, 0, 7, 224, 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, 3, 0, - 228, 128, 218, 0, 228, 160, + 228, 128, 221, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 3, 0, 228, 128, - 219, 0, 228, 160, 9, 0, + 222, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 3, 0, 228, 128, 220, 0, - 228, 160, 2, 0, 0, 3, - 4, 0, 7, 224, 0, 0, - 228, 129, 227, 0, 228, 160, - 1, 0, 0, 2, 3, 0, - 7, 224, 0, 0, 228, 128, - 9, 0, 0, 3, 0, 0, - 1, 128, 3, 0, 228, 128, - 221, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 2, 128, - 3, 0, 228, 128, 222, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 4, 128, 3, 0, - 228, 128, 224, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 170, 128, - 216, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 192, 0, 0, - 170, 128, 1, 0, 0, 2, - 5, 0, 8, 224, 2, 0, - 255, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 120, 6, - 0, 0, 64, 0, 1, 0, - 158, 1, 0, 0, 89, 0, + 3, 0, 228, 128, 224, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 216, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 5, 0, 8, 224, + 2, 0, 255, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 120, 6, 0, 0, 64, 0, + 1, 0, 158, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 2, 0, - 0, 0, 21, 0, 0, 0, - 89, 8, 0, 4, 70, 142, - 32, 0, 4, 0, 0, 0, - 216, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 4, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 5, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 6, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 4, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 5, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 6, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 7, 0, - 0, 0, 104, 0, 0, 2, - 5, 0, 0, 0, 38, 0, - 0, 11, 0, 208, 0, 0, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 5, 0, 0, 0, 2, 64, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 56, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 21, 16, 0, 6, 0, - 0, 0, 70, 142, 32, 4, - 4, 0, 0, 0, 26, 0, + 2, 0, 0, 0, 21, 0, + 0, 0, 89, 8, 0, 4, + 70, 142, 32, 0, 4, 0, + 0, 0, 216, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 11, 242, 0, + 95, 0, 0, 3, 114, 16, 16, 0, 1, 0, 0, 0, - 70, 142, 32, 4, 4, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, + 95, 0, 0, 3, 242, 16, + 16, 0, 2, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 3, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 4, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 5, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 6, 0, 0, 0, - 70, 14, 16, 0, 1, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 4, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 5, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 6, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 7, 0, 0, 0, 104, 0, + 0, 2, 5, 0, 0, 0, + 38, 0, 0, 11, 0, 208, + 0, 0, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 30, + 16, 0, 5, 0, 0, 0, + 2, 64, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 56, 0, 0, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 21, 16, 0, + 6, 0, 0, 0, 70, 142, + 32, 4, 4, 0, 0, 0, + 26, 0, 16, 0, 0, 0, 0, 0, 50, 0, 0, 11, 242, 0, 16, 0, 1, 0, 0, 0, 70, 142, 32, 4, - 4, 0, 0, 0, 42, 0, + 4, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 166, 26, 16, 0, 6, 0, + 6, 16, 16, 0, 6, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 50, 0, 0, 11, 242, 0, 16, 0, 1, 0, 0, 0, 70, 142, 32, 4, 4, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 166, 26, 16, 0, 6, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, - 17, 0, 0, 7, 18, 0, - 16, 0, 2, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 86, 21, - 16, 0, 6, 0, 0, 0, - 70, 142, 32, 6, 4, 0, - 0, 0, 1, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 6, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 1, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 166, 26, - 16, 0, 6, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 1, 0, + 50, 0, 0, 11, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 4, 4, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 246, 31, 16, 0, 6, 0, 0, 0, - 70, 14, 16, 0, 3, 0, + 70, 14, 16, 0, 1, 0, 0, 0, 17, 0, 0, 7, - 34, 0, 16, 0, 2, 0, + 18, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, + 16, 0, 1, 0, 0, 0, 56, 0, 0, 10, 242, 0, - 16, 0, 4, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 86, 21, 16, 0, 6, 0, 0, 0, 70, 142, 32, 6, - 4, 0, 0, 0, 2, 0, + 4, 0, 0, 0, 1, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 50, 0, 0, 12, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 142, + 3, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 2, 0, 0, 0, 10, 0, + 1, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 6, 0, 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 50, 0, + 3, 0, 0, 0, 50, 0, 0, 12, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 142, + 3, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 2, 0, 0, 0, 42, 0, + 1, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, 166, 26, 16, 0, 6, 0, 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 50, 0, + 3, 0, 0, 0, 50, 0, 0, 12, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 142, + 3, 0, 0, 0, 70, 142, 32, 6, 4, 0, 0, 0, - 2, 0, 0, 0, 58, 0, + 1, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 246, 31, 16, 0, 6, 0, 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 17, 0, - 0, 7, 66, 0, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 2, 0, - 0, 0, 58, 16, 16, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, - 0, 0, 0, 0, 70, 14, + 70, 14, 16, 0, 3, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 4, 0, + 0, 0, 86, 21, 16, 0, + 6, 0, 0, 0, 70, 142, + 32, 6, 4, 0, 0, 0, + 2, 0, 0, 0, 26, 0, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 4, 0, 0, 0, + 70, 142, 32, 6, 4, 0, + 0, 0, 2, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 6, 0, 0, 0, 70, 14, + 16, 0, 4, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 4, 0, 0, 0, + 70, 142, 32, 6, 4, 0, + 0, 0, 2, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 166, 26, 16, 0, + 6, 0, 0, 0, 70, 14, + 16, 0, 4, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 6, 4, 0, + 0, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 6, 0, 0, 0, 70, 14, + 16, 0, 4, 0, 0, 0, + 17, 0, 0, 7, 66, 0, 16, 0, 2, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 2, 0, 0, 0, 58, 16, + 16, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 18, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 5, 0, + 2, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 0, 0, + 34, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 6, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, + 5, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 7, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 17, 0, 0, 8, 130, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 50, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 4, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 16, 0, 0, 8, 18, 32, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 70, 131, 32, 0, - 2, 0, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 8, - 34, 32, 16, 0, 2, 0, + 2, 0, 0, 0, 7, 0, + 0, 0, 56, 0, 0, 8, + 242, 32, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 5, 50, 0, 16, 0, + 4, 0, 0, 0, 70, 16, + 16, 0, 4, 0, 0, 0, + 54, 0, 0, 5, 66, 0, + 16, 0, 4, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 16, 0, 0, 8, + 18, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 131, 32, 0, 2, 0, 0, 0, - 17, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 4, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 18, 32, 16, 0, 6, 0, - 0, 0, 70, 18, 16, 0, + 16, 0, 0, 0, 16, 0, + 0, 8, 34, 32, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 34, 0, + 16, 0, 4, 0, 0, 0, + 70, 131, 32, 0, 2, 0, + 0, 0, 17, 0, 0, 0, + 16, 0, 0, 7, 18, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 32, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 18, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 3, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 4, 0, + 34, 0, 16, 0, 4, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 66, 32, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 34, 32, 16, 0, 6, 0, 0, 0, 70, 18, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 8, 18, 32, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 70, 130, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 34, 32, + 3, 0, 0, 0, 16, 0, + 0, 7, 66, 0, 16, 0, + 4, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 7, + 66, 32, 16, 0, 6, 0, + 0, 0, 70, 18, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 18, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 66, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, 70, 130, 32, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 5, 114, 32, 16, 0, - 7, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 16, 0, + 0, 8, 66, 32, 16, 0, + 3, 0, 0, 0, 70, 2, 16, 0, 4, 0, 0, 0, - 17, 0, 0, 8, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 5, 114, 32, + 16, 0, 7, 0, 0, 0, + 70, 2, 16, 0, 4, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 9, - 114, 32, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 20, 0, + 0, 0, 1, 0, 0, 0, + 17, 0, 0, 8, 66, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 6, 0, - 0, 0, 58, 16, 16, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 244, 0, 0, 0, 7, 0, - 0, 0, 8, 0, 0, 0, - 176, 0, 0, 0, 0, 0, + 114, 32, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 188, 0, 0, 0, 0, 0, + 0, 9, 114, 32, 16, 0, + 5, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 2, 0, 0, 0, + 20, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 6, 0, 0, 0, 58, 16, + 16, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 244, 0, 0, 0, + 7, 0, 0, 0, 8, 0, + 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 195, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, - 203, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 15, 0, 0, - 209, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 15, 15, + 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 3, 3, 0, 0, - 218, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 15, + 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 5, 0, - 0, 0, 15, 15, 0, 0, - 231, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 3, 3, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 65, 78, 71, 69, - 78, 84, 0, 67, 79, 76, - 79, 82, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 66, 76, 69, 78, 68, 73, - 78, 68, 73, 67, 69, 83, - 0, 66, 76, 69, 78, 68, - 87, 69, 73, 71, 72, 84, - 0, 171, 79, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 12, 0, 0, - 218, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 8, 0, 0, - 218, 0, 0, 0, 2, 0, + 5, 0, 0, 0, 15, 15, + 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 8, 0, 0, - 218, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 8, 0, 0, - 218, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 15, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 84, 65, 78, + 71, 69, 78, 84, 0, 67, + 79, 76, 79, 82, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 66, 76, 69, 78, + 68, 73, 78, 68, 73, 67, + 69, 83, 0, 66, 76, 69, + 78, 68, 87, 69, 73, 71, + 72, 84, 0, 171, 79, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 8, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171 + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 12, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 8, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 8, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_mainVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_mainVc.inc index c117cac37ac593ed6b2ad9d873e7f51c1d86c9bd..1a21adfffcfe0c46507232303299c15a44ab87c2 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_mainVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLEffect_mainVc.inc @@ -50,31 +50,45 @@ // vs_2_0 def c12, 1, 0, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 - dp4 oPos.z, v0, c7 - mul oT0, v3, c1 + dcl_texcoord v0 // vertex<0,1,2,3> + dcl_texcoord1 v1 // vertex<4,5,6> + dcl_texcoord2 v2 // vertex<7,8,9,10> + dcl_texcoord3 v3 // vertex<11,12,13,14> + dcl_texcoord4 v4 // vertex<15,16> + +#line 150 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLEffect.fx" + dp4 oPos.z, v0, c7 // ::mainVc<2> + mul oT0, v3, c1 // ::mainVc<4,5,6,7> mad r0.xyz, v4.xyxw, c12.xxyw, c12.yyxw - dp3 oT1.x, r0, c9.xyww - dp3 oT1.y, r0, c10.xyww - dp3 oT2.x, v1, c2 - dp3 oT2.y, v1, c3 - dp3 oT2.z, v1, c4 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c4 - add oT4.xyz, -r0, c11 - mov oT3.xyz, r0 - dp4 r0.x, v0, c5 - dp4 r0.y, v0, c6 - dp4 r0.z, v0, c8 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT5, v2 - mov oT6.xyz, v1 + dp3 oT1.x, r0, c9.xyww // ::mainVc<8> + dp3 oT1.y, r0, c10.xyww // ::mainVc<9> + dp3 oT2.x, v1, c2 // ::mainVc<10> + dp3 oT2.y, v1, c3 // ::mainVc<11> + dp3 oT2.z, v1, c4 // ::mainVc<12> + +#line 147 + dp4 r0.x, v0, c2 // ::wp<0> + dp4 r0.y, v0, c3 // ::wp<1> + dp4 r0.z, v0, c4 // ::wp<2> + +#line 155 + add oT4.xyz, -r0, c11 // ::mainVc<16,17,18> + +#line 147 + mov oT3.xyz, r0 // ::mainVc<13,14,15> + +#line 150 + dp4 r0.x, v0, c5 // ::result<0> + dp4 r0.y, v0, c6 // ::result<1> + dp4 r0.z, v0, c8 // ::result<3> + +#line 143 + mad oPos.xy, r0.z, c0, r0 // ::mainVc<0,1> + mov oPos.w, r0.z // ::mainVc<3> + +#line 156 + mov oT5, v2 // ::mainVc<19,20,21,22> + mov oT6.xyz, v1 // ::mainVc<23,24,25> // approximately 20 instruction slots used vs_4_0 @@ -119,17 +133,17 @@ ret const BYTE DGSLEffect_mainVc[] = { - 68, 88, 66, 67, 46, 24, - 56, 107, 253, 204, 106, 97, - 79, 20, 243, 167, 246, 83, - 101, 20, 1, 0, 0, 0, - 212, 6, 0, 0, 4, 0, + 68, 88, 66, 67, 72, 67, + 248, 97, 31, 192, 50, 24, + 77, 242, 183, 202, 121, 19, + 101, 76, 1, 0, 0, 0, + 228, 10, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 48, 2, 0, 0, 52, 5, - 0, 0, 232, 5, 0, 0, - 65, 111, 110, 57, 248, 1, - 0, 0, 248, 1, 0, 0, - 0, 2, 254, 255, 148, 1, + 64, 6, 0, 0, 68, 9, + 0, 0, 248, 9, 0, 0, + 65, 111, 110, 57, 8, 6, + 0, 0, 8, 6, 0, 0, + 0, 2, 254, 255, 164, 5, 0, 0, 100, 0, 0, 0, 5, 0, 36, 0, 0, 0, 96, 0, 0, 0, 96, 0, @@ -145,270 +159,443 @@ const BYTE DGSLEffect_mainVc[] = 0, 0, 2, 0, 20, 0, 1, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 12, 0, 15, 160, - 0, 0, 128, 63, 0, 0, + 0, 2, 254, 255, 254, 255, + 3, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 224, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 7, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 224, 3, 0, - 228, 144, 1, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 128, 4, 0, 196, 144, - 12, 0, 208, 160, 12, 0, - 197, 160, 8, 0, 0, 3, - 1, 0, 1, 224, 0, 0, - 228, 128, 9, 0, 244, 160, - 8, 0, 0, 3, 1, 0, - 2, 224, 0, 0, 228, 128, - 10, 0, 244, 160, 8, 0, - 0, 3, 2, 0, 1, 224, - 1, 0, 228, 144, 2, 0, - 228, 160, 8, 0, 0, 3, - 2, 0, 2, 224, 1, 0, - 228, 144, 3, 0, 228, 160, + 1, 0, 0, 0, 116, 0, + 0, 0, 26, 0, 0, 0, + 120, 0, 0, 0, 4, 0, + 0, 0, 144, 3, 0, 0, + 72, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 20, 4, + 0, 0, 0, 0, 255, 255, + 44, 4, 0, 0, 0, 0, + 255, 255, 56, 4, 0, 0, + 0, 0, 255, 255, 68, 4, + 0, 0, 0, 0, 255, 255, + 80, 4, 0, 0, 0, 0, + 255, 255, 92, 4, 0, 0, + 150, 0, 0, 0, 104, 4, + 0, 0, 151, 0, 0, 0, + 120, 4, 0, 0, 152, 0, + 0, 0, 136, 4, 0, 0, + 152, 0, 0, 0, 156, 4, + 0, 0, 152, 0, 0, 0, + 172, 4, 0, 0, 153, 0, + 0, 0, 188, 4, 0, 0, + 153, 0, 0, 0, 204, 4, + 0, 0, 153, 0, 0, 0, + 220, 4, 0, 0, 147, 0, + 0, 0, 236, 4, 0, 0, + 147, 0, 0, 0, 252, 4, + 0, 0, 147, 0, 0, 0, + 12, 5, 0, 0, 155, 0, + 0, 0, 28, 5, 0, 0, + 147, 0, 0, 0, 44, 5, + 0, 0, 150, 0, 0, 0, + 56, 5, 0, 0, 150, 0, + 0, 0, 72, 5, 0, 0, + 150, 0, 0, 0, 88, 5, + 0, 0, 143, 0, 0, 0, + 104, 5, 0, 0, 143, 0, + 0, 0, 124, 5, 0, 0, + 156, 0, 0, 0, 136, 5, + 0, 0, 157, 0, 0, 0, + 148, 5, 0, 0, 109, 97, + 105, 110, 86, 99, 0, 112, + 111, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 79, 1, 0, 0, 84, 1, + 0, 0, 100, 1, 0, 0, + 84, 1, 0, 0, 108, 1, + 0, 0, 112, 1, 0, 0, + 128, 1, 0, 0, 140, 1, + 0, 0, 156, 1, 0, 0, + 140, 1, 0, 0, 165, 1, + 0, 0, 140, 1, 0, 0, + 171, 1, 0, 0, 84, 1, + 0, 0, 179, 1, 0, 0, + 140, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 188, 1, + 0, 0, 6, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 7, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 9, 0, 0, 0, + 8, 0, 255, 255, 255, 255, + 255, 255, 10, 0, 0, 0, + 255, 255, 9, 0, 255, 255, + 255, 255, 11, 0, 0, 0, + 10, 0, 255, 255, 255, 255, + 255, 255, 12, 0, 0, 0, + 255, 255, 11, 0, 255, 255, + 255, 255, 13, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 17, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 18, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 255, 255, 22, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 23, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 24, 0, 0, 0, + 19, 0, 20, 0, 21, 0, + 22, 0, 25, 0, 0, 0, + 23, 0, 24, 0, 25, 0, + 255, 255, 114, 101, 115, 117, + 108, 116, 0, 171, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 188, 1, + 0, 0, 19, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 20, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 21, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 118, 101, 114, 116, + 101, 120, 0, 99, 111, 108, + 111, 114, 0, 171, 171, 171, + 79, 1, 0, 0, 84, 1, + 0, 0, 179, 1, 0, 0, + 140, 1, 0, 0, 171, 1, + 0, 0, 84, 1, 0, 0, + 235, 2, 0, 0, 84, 1, + 0, 0, 108, 1, 0, 0, + 112, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 244, 2, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 9, 0, + 10, 0, 4, 0, 0, 0, + 11, 0, 12, 0, 13, 0, + 14, 0, 5, 0, 0, 0, + 15, 0, 16, 0, 255, 255, + 255, 255, 119, 112, 0, 171, + 14, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 15, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 16, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 0, 0, 0, 0, 72, 1, + 0, 0, 252, 1, 0, 0, + 13, 0, 0, 0, 12, 2, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 176, 2, + 0, 0, 3, 0, 0, 0, + 192, 2, 0, 0, 72, 1, + 0, 0, 228, 2, 0, 0, + 28, 3, 0, 0, 5, 0, + 0, 0, 44, 3, 0, 0, + 0, 0, 0, 0, 104, 3, + 0, 0, 140, 1, 0, 0, + 3, 0, 0, 0, 108, 3, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 12, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 144, + 7, 0, 228, 160, 5, 0, + 0, 3, 0, 0, 15, 224, + 3, 0, 228, 144, 1, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 7, 128, 4, 0, + 196, 144, 12, 0, 208, 160, + 12, 0, 197, 160, 8, 0, + 0, 3, 1, 0, 1, 224, + 0, 0, 228, 128, 9, 0, + 244, 160, 8, 0, 0, 3, + 1, 0, 2, 224, 0, 0, + 228, 128, 10, 0, 244, 160, 8, 0, 0, 3, 2, 0, - 4, 224, 1, 0, 228, 144, - 4, 0, 228, 160, 9, 0, + 1, 224, 1, 0, 228, 144, + 2, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 2, 224, + 1, 0, 228, 144, 3, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 4, 224, 1, 0, + 228, 144, 4, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 2, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 3, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 4, 0, 228, 160, + 2, 0, 0, 3, 4, 0, + 7, 224, 0, 0, 228, 129, + 11, 0, 228, 160, 1, 0, + 0, 2, 3, 0, 7, 224, + 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 2, 0, + 0, 0, 228, 144, 5, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 0, 0, - 228, 144, 3, 0, 228, 160, + 228, 144, 6, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, 0, 0, 228, 144, - 4, 0, 228, 160, 2, 0, - 0, 3, 4, 0, 7, 224, - 0, 0, 228, 129, 11, 0, - 228, 160, 1, 0, 0, 2, - 3, 0, 7, 224, 0, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 5, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 6, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 8, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 5, 0, 15, 224, - 2, 0, 228, 144, 1, 0, - 0, 2, 6, 0, 7, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 252, 2, 0, 0, 64, 0, - 1, 0, 191, 0, 0, 0, + 8, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 5, 0, + 15, 224, 2, 0, 228, 144, + 1, 0, 0, 2, 6, 0, + 7, 224, 1, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 252, 2, 0, 0, + 64, 0, 1, 0, 191, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 2, 0, 0, 0, 21, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 114, 16, 16, 0, 1, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 2, 0, - 0, 0, 95, 0, 0, 3, - 242, 16, 16, 0, 3, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 4, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 4, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 5, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 6, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 7, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 4, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 21, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 2, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 3, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 4, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 4, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 5, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 6, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 7, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 4, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 6, 0, + 2, 0, 0, 0, 5, 0, 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 0, 0, + 66, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, 0, 0, - 7, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 1, 0, 0, 0, 70, 30, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 5, 50, 0, + 6, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, + 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 4, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 7, 0, 0, 0, + 56, 0, 0, 8, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 3, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 54, 0, 0, 5, - 66, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 16, 0, - 0, 8, 18, 32, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 131, 32, 0, 2, 0, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 8, 34, 32, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 4, 0, 0, 0, 54, 0, + 0, 5, 66, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 16, 0, 0, 8, 18, 32, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 131, 32, 0, - 2, 0, 0, 0, 17, 0, + 2, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 8, - 18, 32, 16, 0, 3, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 130, + 34, 32, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 131, 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 8, 34, 32, 16, 0, + 17, 0, 0, 0, 16, 0, + 0, 8, 18, 32, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 66, 32, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, + 2, 0, 0, 0, 1, 0, + 0, 0, 16, 0, 0, 8, + 66, 32, 16, 0, 3, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 130, 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 2, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 17, 0, 0, 8, 66, 0, + 0, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 2, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 17, 0, 0, 8, + 66, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 5, 114, 32, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 114, 32, + 16, 0, 5, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 2, 0, + 0, 0, 20, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 16, 0, 2, 0, 0, 0, 54, 0, 0, 5, - 114, 32, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, + 114, 32, 16, 0, 7, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 172, 0, 0, 0, 5, 0, + 0, 0, 8, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 114, 32, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 2, 0, 0, 0, - 20, 0, 0, 0, 54, 0, - 0, 5, 242, 32, 16, 0, - 6, 0, 0, 0, 70, 30, - 16, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 114, 32, - 16, 0, 7, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 172, 0, - 0, 0, 5, 0, 0, 0, - 8, 0, 0, 0, 128, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 15, 15, 0, 0, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 140, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 15, 0, 0, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 3, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 65, 78, 71, 69, + 78, 84, 0, 67, 79, 76, + 79, 82, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 79, 83, 71, 78, + 228, 0, 0, 0, 8, 0, + 0, 0, 8, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 147, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 15, 15, 0, 0, 155, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 15, 15, 0, 0, 161, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 12, 0, 0, + 218, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 3, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 65, 78, 71, 69, 78, 84, - 0, 67, 79, 76, 79, 82, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 171, 171, - 79, 83, 71, 78, 228, 0, - 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 200, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 212, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 7, 8, 0, 0, + 218, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 218, 0, + 3, 0, 0, 0, 6, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 218, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 7, 8, 0, 0, 218, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 7, 8, 0, 0, 218, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 7, 8, 0, 0, 218, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 6, 0, 0, 0, - 15, 0, 0, 0, 218, 0, - 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 7, 0, 0, 0, - 7, 8, 0, 0, 83, 86, - 95, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171 + 3, 0, 0, 0, 7, 0, + 0, 0, 7, 8, 0, 0, + 83, 86, 95, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_main.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_main.inc index fa7e69b4f34b6b429a03a573987b2b352bf0f277..e58b919df749ee8fa353e8ccea1c39d98ae4ca40 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_main.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_main.inc @@ -36,25 +36,41 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t2.xyz - nrm r0.xyz, t2 - dp3_sat r0.w, c6, r0 + dcl t0 // pixel<4,5,6,7> + dcl t2.xyz // pixel<10,11,12> + +#line 99 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLLambert.hlsl" + nrm r0.xyz, t2 // ::worldNormal<0,1,2> + +#line 82 + dp3_sat r0.w, c6, r0 // ::diffuseAmount<0> mul r1.xyz, r0.w, c2 - mul r1.xyz, r1, t0 - mov r2.xyz, c0 - mad r1.xyz, r2, c1, r1 - dp3_sat r0.w, c7, r0 + mul r1.xyz, r1, t0 // ::diffuse<0,1,2> + +#line 105 + mov r2.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r1.xyz, r2, c1, r1 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c7, r0 // ::diffuseAmount<0> mul r2.xyz, r0.w, c3 - mad r1.xyz, r2, t0, r1 - dp3_sat r0.w, c8, r0 - dp3_sat r1.w, c9, r0 + +#line 105 + mad r1.xyz, r2, t0, r1 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c8, r0 // ::diffuseAmount<0> + dp3_sat r1.w, c9, r0 // ::diffuseAmount<0> mul r0.xyz, r1.w, c5 mul r2.xyz, r0.w, c4 - mad r1.xyz, r2, t0, r1 - mad_sat r0.xyz, r0, t0, r1 + +#line 105 + mad r1.xyz, r2, t0, r1 // ::local3<0,1,2> + mad_sat r0.xyz, r0, t0, r1 // ::local3<0,1,2> + +#line 108 mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::main<0,1,2,3> // approximately 19 instruction slots used ps_4_0 @@ -87,17 +103,17 @@ ret const BYTE DGSLLambert_main[] = { - 68, 88, 66, 67, 187, 65, - 58, 0, 83, 56, 125, 10, - 111, 229, 99, 96, 154, 18, - 252, 50, 1, 0, 0, 0, - 68, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 217, 104, + 24, 135, 161, 120, 240, 98, + 49, 130, 137, 15, 118, 241, + 187, 148, 1, 0, 0, 0, + 8, 9, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 176, 1, 0, 0, 36, 4, - 0, 0, 16, 5, 0, 0, - 65, 111, 110, 57, 120, 1, - 0, 0, 120, 1, 0, 0, - 0, 2, 255, 255, 48, 1, + 116, 5, 0, 0, 232, 7, + 0, 0, 212, 8, 0, 0, + 65, 111, 110, 57, 60, 5, + 0, 0, 60, 5, 0, 0, + 0, 2, 255, 255, 244, 4, 0, 0, 72, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -109,207 +125,368 @@ const BYTE DGSLLambert_main[] = 0, 0, 1, 0, 9, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 2, 0, 7, 176, - 36, 0, 0, 2, 0, 0, - 7, 128, 2, 0, 228, 176, + 254, 255, 240, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 148, 3, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 120, 0, 0, 0, 19, 0, + 0, 0, 124, 0, 0, 0, + 7, 0, 0, 0, 8, 3, + 0, 0, 252, 1, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 68, 71, 83, 76, 76, 97, + 109, 98, 101, 114, 116, 46, + 104, 108, 115, 108, 0, 171, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 200, 3, + 0, 0, 0, 0, 255, 255, + 212, 3, 0, 0, 99, 0, + 0, 0, 224, 3, 0, 0, + 82, 0, 0, 0, 236, 3, + 0, 0, 83, 0, 0, 0, + 252, 3, 0, 0, 83, 0, + 0, 0, 12, 4, 0, 0, + 105, 0, 0, 0, 28, 4, + 0, 0, 105, 0, 0, 0, + 40, 4, 0, 0, 82, 0, + 0, 0, 60, 4, 0, 0, + 83, 0, 0, 0, 76, 4, + 0, 0, 105, 0, 0, 0, + 92, 4, 0, 0, 82, 0, + 0, 0, 112, 4, 0, 0, + 82, 0, 0, 0, 128, 4, + 0, 0, 83, 0, 0, 0, + 144, 4, 0, 0, 83, 0, + 0, 0, 160, 4, 0, 0, + 105, 0, 0, 0, 176, 4, + 0, 0, 105, 0, 0, 0, + 196, 4, 0, 0, 108, 0, + 0, 0, 216, 4, 0, 0, + 108, 0, 0, 0, 228, 4, + 0, 0, 77, 97, 116, 101, + 114, 105, 97, 108, 86, 97, + 114, 115, 0, 77, 97, 116, + 101, 114, 105, 97, 108, 65, + 109, 98, 105, 101, 110, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 65, 109, 111, + 117, 110, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 8, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 11, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 12, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 108, 111, + 99, 97, 108, 51, 0, 171, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 15, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 16, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 109, 97, 105, 110, 0, 102, + 114, 97, 103, 109, 101, 110, + 116, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 0, 0, + 12, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 4, 0, + 1, 0, 1, 0, 28, 2, + 0, 0, 18, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 120, 101, + 108, 0, 112, 111, 115, 0, + 117, 118, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 0, 119, 111, 114, 108, + 100, 80, 111, 115, 0, 116, + 111, 69, 121, 101, 0, 116, + 97, 110, 103, 101, 110, 116, + 0, 110, 111, 114, 109, 97, + 108, 0, 70, 2, 0, 0, + 12, 2, 0, 0, 80, 1, + 0, 0, 12, 2, 0, 0, + 74, 2, 0, 0, 80, 2, + 0, 0, 96, 2, 0, 0, + 88, 1, 0, 0, 106, 2, + 0, 0, 88, 1, 0, 0, + 115, 2, 0, 0, 88, 1, + 0, 0, 121, 2, 0, 0, + 12, 2, 0, 0, 129, 2, + 0, 0, 88, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 26, 0, 1, 0, 8, 0, + 136, 2, 0, 0, 0, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 7, 0, 1, 0, + 0, 0, 10, 0, 11, 0, + 12, 0, 255, 255, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 97, 108, 0, 2, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 20, 1, + 0, 0, 33, 1, 0, 0, + 52, 1, 0, 0, 1, 0, + 0, 0, 68, 1, 0, 0, + 0, 0, 0, 0, 80, 1, + 0, 0, 88, 1, 0, 0, + 1, 0, 0, 0, 104, 1, + 0, 0, 0, 0, 0, 0, + 116, 1, 0, 0, 132, 1, + 0, 0, 4, 0, 0, 0, + 148, 1, 0, 0, 0, 0, + 0, 0, 196, 1, 0, 0, + 88, 1, 0, 0, 4, 0, + 0, 0, 204, 1, 0, 0, + 0, 0, 0, 0, 252, 1, + 0, 0, 36, 2, 0, 0, + 1, 0, 0, 0, 52, 2, + 0, 0, 252, 1, 0, 0, + 64, 2, 0, 0, 200, 2, + 0, 0, 2, 0, 0, 0, + 216, 2, 0, 0, 0, 0, + 0, 0, 240, 2, 0, 0, + 88, 1, 0, 0, 1, 0, + 0, 0, 252, 2, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 2, 0, 7, 176, 36, 0, + 0, 2, 0, 0, 7, 128, + 2, 0, 228, 176, 8, 0, + 0, 3, 0, 0, 24, 128, + 6, 0, 228, 160, 0, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 0, 0, + 255, 128, 2, 0, 228, 160, + 5, 0, 0, 3, 1, 0, + 7, 128, 1, 0, 228, 128, + 0, 0, 228, 176, 1, 0, + 0, 2, 2, 0, 7, 128, + 0, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 2, 0, 228, 128, 1, 0, + 228, 160, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 24, 128, 6, 0, 228, 160, + 24, 128, 7, 0, 228, 160, 0, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 0, 0, 255, 128, 2, 0, - 228, 160, 5, 0, 0, 3, - 1, 0, 7, 128, 1, 0, + 0, 3, 2, 0, 7, 128, + 0, 0, 255, 128, 3, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 7, 128, 2, 0, 228, 128, 0, 0, 228, 176, - 1, 0, 0, 2, 2, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 7, 128, 2, 0, 228, 128, - 1, 0, 228, 160, 1, 0, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 24, 128, + 8, 0, 228, 160, 0, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 24, 128, 7, 0, + 1, 0, 24, 128, 9, 0, 228, 160, 0, 0, 228, 128, - 5, 0, 0, 3, 2, 0, - 7, 128, 0, 0, 255, 128, - 3, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 2, 0, 228, 128, 0, 0, - 228, 176, 1, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 24, 128, 8, 0, 228, 160, - 0, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 24, 128, - 9, 0, 228, 160, 0, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 1, 0, - 255, 128, 5, 0, 228, 160, - 5, 0, 0, 3, 2, 0, - 7, 128, 0, 0, 255, 128, - 4, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 2, 0, 228, 128, 0, 0, + 5, 0, 0, 3, 0, 0, + 7, 128, 1, 0, 255, 128, + 5, 0, 228, 160, 5, 0, + 0, 3, 2, 0, 7, 128, + 0, 0, 255, 128, 4, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 7, 128, 2, 0, + 228, 128, 0, 0, 228, 176, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 23, 128, + 0, 0, 228, 128, 0, 0, 228, 176, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 23, 128, 0, 0, 228, 128, - 0, 0, 228, 176, 1, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 176, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 108, 2, - 0, 0, 64, 0, 0, 0, - 155, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, + 1, 0, 0, 2, 0, 0, + 8, 128, 0, 0, 255, 176, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 108, 2, 0, 0, + 64, 0, 0, 0, 155, 0, 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 3, 0, 0, 0, + 16, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 3, 0, - 0, 0, 16, 0, 0, 7, - 18, 0, 16, 0, 0, 0, + 70, 18, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 68, 0, 0, 5, 18, 0, + 3, 0, 0, 0, 68, 0, + 0, 5, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 16, 32, 0, 8, 130, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 32, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 16, 32, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 70, 2, + 9, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, - 16, 0, 2, 0, 0, 0, + 16, 0, 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 50, 0, 0, 9, + 1, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 70, 18, + 1, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 16, 32, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 11, 0, + 1, 0, 0, 0, 10, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 32, - 0, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 2, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 114, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 50, 0, 0, 9, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 16, 32, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 32, 0, 8, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 4, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 1, 0, + 1, 0, 0, 0, 12, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 32, - 0, 9, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 0, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 1, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 4, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 16, + 2, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 50, 32, 0, 9, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 16, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 228, 0, 0, 0, 8, 0, + 0, 0, 8, 0, 0, 0, + 200, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 15, - 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 7, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 0, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 218, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 7, 7, 0, 0, + 218, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 3, 0, 0, 0, 4, 0, + 0, 0, 7, 0, 0, 0, + 218, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 7, 0, 0, 0, + 218, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 6, 0, + 0, 0, 15, 0, 0, 0, + 218, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 7, 0, + 0, 0, 7, 0, 0, 0, + 83, 86, 95, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTk.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTk.inc index 7efe50fbef710dea48febf5c208cb855e80b5701..0600eb94b51ad5e5f6c0e57eedbbb000227372cb 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTk.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTk.inc @@ -37,28 +37,50 @@ // ps_2_0 def c10, -1, -0, 0, 0 - dcl t0 - dcl t2.xyz + dcl t0 // pixel<4,5,6,7> + dcl t2.xyz // pixel<10,11,12> + +#line 130 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLLambert.hlsl" mul r0.w, t0.w, t0.w cmp r0, -r0.w, c10.x, c10.y texkill r0 - nrm r0.xyz, t2 - dp3_sat r0.w, c6, r0 + +#line 118 + nrm r0.xyz, t2 // ::worldNormal<0,1,2> + +#line 82 + dp3_sat r0.w, c6, r0 // ::diffuseAmount<0> mul r1.xyz, r0.w, c2 - mul r1.xyz, r1, t0 - mov r2.xyz, c0 - mad r1.xyz, r2, c1, r1 - dp3_sat r0.w, c7, r0 + mul r1.xyz, r1, t0 // ::diffuse<0,1,2> + +#line 124 + mov r2.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r1.xyz, r2, c1, r1 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c7, r0 // ::diffuseAmount<0> mul r2.xyz, r0.w, c3 - mad r1.xyz, r2, t0, r1 - dp3_sat r0.w, c8, r0 + +#line 124 + mad r1.xyz, r2, t0, r1 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c8, r0 // ::diffuseAmount<0> mul r2.xyz, r0.w, c4 - mad r1.xyz, r2, t0, r1 - dp3_sat r1.w, c9, r0 + +#line 124 + mad r1.xyz, r2, t0, r1 // ::local3<0,1,2> + +#line 82 + dp3_sat r1.w, c9, r0 // ::diffuseAmount<0> mul r0.xyz, r1.w, c5 - mad_sat r0.xyz, r0, t0, r1 + +#line 124 + mad_sat r0.xyz, r0, t0, r1 // ::local3<0,1,2> + +#line 132 mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::mainTk<0,1,2,3> // approximately 22 instruction slots used ps_4_0 @@ -93,17 +115,17 @@ ret const BYTE DGSLLambert_mainTk[] = { - 68, 88, 66, 67, 28, 71, - 107, 235, 74, 190, 103, 118, - 132, 4, 112, 124, 14, 35, - 208, 217, 1, 0, 0, 0, - 176, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 49, 185, + 15, 251, 73, 181, 30, 50, + 96, 92, 73, 219, 218, 231, + 168, 206, 1, 0, 0, 0, + 148, 9, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 244, 1, 0, 0, 144, 4, - 0, 0, 124, 5, 0, 0, - 65, 111, 110, 57, 188, 1, - 0, 0, 188, 1, 0, 0, - 0, 2, 255, 255, 116, 1, + 216, 5, 0, 0, 116, 8, + 0, 0, 96, 9, 0, 0, + 65, 111, 110, 57, 160, 5, + 0, 0, 160, 5, 0, 0, + 0, 2, 255, 255, 88, 5, 0, 0, 72, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -115,6 +137,172 @@ const BYTE DGSLLambert_mainTk[] = 0, 0, 1, 0, 9, 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, 2, 255, 255, + 254, 255, 248, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 180, 3, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 120, 0, 0, 0, 23, 0, + 0, 0, 124, 0, 0, 0, + 7, 0, 0, 0, 40, 3, + 0, 0, 28, 2, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 68, 71, 83, 76, 76, 97, + 109, 98, 101, 114, 116, 46, + 104, 108, 115, 108, 0, 171, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 232, 3, + 0, 0, 0, 0, 255, 255, + 0, 4, 0, 0, 0, 0, + 255, 255, 12, 4, 0, 0, + 130, 0, 0, 0, 24, 4, + 0, 0, 130, 0, 0, 0, + 40, 4, 0, 0, 130, 0, + 0, 0, 60, 4, 0, 0, + 118, 0, 0, 0, 68, 4, + 0, 0, 82, 0, 0, 0, + 80, 4, 0, 0, 83, 0, + 0, 0, 96, 4, 0, 0, + 83, 0, 0, 0, 112, 4, + 0, 0, 124, 0, 0, 0, + 128, 4, 0, 0, 124, 0, + 0, 0, 140, 4, 0, 0, + 82, 0, 0, 0, 160, 4, + 0, 0, 83, 0, 0, 0, + 176, 4, 0, 0, 124, 0, + 0, 0, 192, 4, 0, 0, + 82, 0, 0, 0, 212, 4, + 0, 0, 83, 0, 0, 0, + 228, 4, 0, 0, 124, 0, + 0, 0, 244, 4, 0, 0, + 82, 0, 0, 0, 8, 5, + 0, 0, 83, 0, 0, 0, + 24, 5, 0, 0, 124, 0, + 0, 0, 40, 5, 0, 0, + 132, 0, 0, 0, 60, 5, + 0, 0, 132, 0, 0, 0, + 72, 5, 0, 0, 77, 97, + 116, 101, 114, 105, 97, 108, + 86, 97, 114, 115, 0, 77, + 97, 116, 101, 114, 105, 97, + 108, 65, 109, 98, 105, 101, + 110, 116, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 65, + 109, 111, 117, 110, 116, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 12, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 15, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 18, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 108, 111, 99, 97, 108, 51, + 0, 171, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 14, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 17, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 20, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 109, 97, 105, 110, + 84, 107, 0, 102, 114, 97, + 103, 109, 101, 110, 116, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 35, 2, + 0, 0, 44, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 4, 0, 1, 0, 1, 0, + 60, 2, 0, 0, 22, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 112, 105, + 120, 101, 108, 0, 112, 111, + 115, 0, 117, 118, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 102, 2, + 0, 0, 44, 2, 0, 0, + 112, 1, 0, 0, 44, 2, + 0, 0, 106, 2, 0, 0, + 112, 2, 0, 0, 128, 2, + 0, 0, 120, 1, 0, 0, + 138, 2, 0, 0, 120, 1, + 0, 0, 147, 2, 0, 0, + 120, 1, 0, 0, 153, 2, + 0, 0, 44, 2, 0, 0, + 161, 2, 0, 0, 120, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 26, 0, 1, 0, + 8, 0, 168, 2, 0, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 2, 0, 0, 0, 10, 0, + 11, 0, 12, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 52, 1, 0, 0, 65, 1, + 0, 0, 84, 1, 0, 0, + 1, 0, 0, 0, 100, 1, + 0, 0, 0, 0, 0, 0, + 112, 1, 0, 0, 120, 1, + 0, 0, 1, 0, 0, 0, + 136, 1, 0, 0, 0, 0, + 0, 0, 148, 1, 0, 0, + 164, 1, 0, 0, 4, 0, + 0, 0, 180, 1, 0, 0, + 0, 0, 0, 0, 228, 1, + 0, 0, 120, 1, 0, 0, + 4, 0, 0, 0, 236, 1, + 0, 0, 0, 0, 0, 0, + 28, 2, 0, 0, 68, 2, + 0, 0, 1, 0, 0, 0, + 84, 2, 0, 0, 28, 2, + 0, 0, 96, 2, 0, 0, + 232, 2, 0, 0, 2, 0, + 0, 0, 248, 2, 0, 0, + 0, 0, 0, 0, 16, 3, + 0, 0, 120, 1, 0, 0, + 1, 0, 0, 0, 28, 3, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, 81, 0, 0, 5, 10, 0, 15, 160, 0, 0, 128, 191, 0, 0, 0, 128, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTx.inc index 33d63773c738f887749816d812f5845197d1a14b..34ef87c6ebed370104cc6e2437b9ec5d3050c0f9 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTx.inc @@ -43,29 +43,47 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1.xy - dcl t2.xyz + dcl t0 // pixel<4,5,6,7> + dcl t1.xy // pixel<8,9> + dcl t2.xyz // pixel<10,11,12> dcl_2d s0 + +#line 149 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLLambert.hlsl" texld r0, t1, s0 - nrm r1.xyz, t2 - dp3_sat r1.w, c6, r1 + +#line 139 + nrm r1.xyz, t2 // ::worldNormal<0,1,2> + +#line 82 + dp3_sat r1.w, c6, r1 // ::diffuseAmount<0> mul r2.xyz, r1.w, c2 - mul r2.xyz, r2, t0 - mov r3.xyz, c0 - mad r2.xyz, r3, c1, r2 - dp3_sat r1.w, c7, r1 + mul r2.xyz, r2, t0 // ::diffuse<0,1,2> + +#line 145 + mov r3.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r2.xyz, r3, c1, r2 // ::local3<0,1,2> + +#line 82 + dp3_sat r1.w, c7, r1 // ::diffuseAmount<0> mul r3.xyz, r1.w, c3 - mad r2.xyz, r3, t0, r2 - dp3_sat r1.w, c8, r1 - dp3_sat r2.w, c9, r1 + +#line 145 + mad r2.xyz, r3, t0, r2 // ::local3<0,1,2> + +#line 82 + dp3_sat r1.w, c8, r1 // ::diffuseAmount<0> + dp3_sat r2.w, c9, r1 // ::diffuseAmount<0> mul r1.xyz, r2.w, c5 mul r3.xyz, r1.w, c4 - mad r2.xyz, r3, t0, r2 - mad_sat r1.xyz, r1, t0, r2 - mul r1.xyz, r0, r1 - mul r1.w, r0.w, t0.w - mov oC0, r1 + +#line 145 + mad r2.xyz, r3, t0, r2 // ::local3<0,1,2> + mad_sat r1.xyz, r1, t0, r2 // ::local3<0,1,2> + +#line 149 + mul r1.xyz, r0, r1 // ::local4<0,1,2> + mul r1.w, r0.w, t0.w // ::local5<0> + mov oC0, r1 // ::mainTx<0,1,2,3> // approximately 21 instruction slots used (1 texture, 20 arithmetic) ps_4_0 @@ -103,17 +121,17 @@ ret const BYTE DGSLLambert_mainTx[] = { - 68, 88, 66, 67, 102, 190, - 51, 178, 209, 36, 176, 183, - 170, 53, 17, 30, 248, 77, - 247, 254, 1, 0, 0, 0, - 244, 5, 0, 0, 4, 0, + 68, 88, 66, 67, 2, 83, + 250, 55, 168, 31, 166, 40, + 181, 24, 99, 4, 43, 67, + 37, 218, 1, 0, 0, 0, + 52, 10, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 240, 1, 0, 0, 212, 4, - 0, 0, 192, 5, 0, 0, - 65, 111, 110, 57, 184, 1, - 0, 0, 184, 1, 0, 0, - 0, 2, 255, 255, 108, 1, + 48, 6, 0, 0, 20, 9, + 0, 0, 0, 10, 0, 0, + 65, 111, 110, 57, 248, 5, + 0, 0, 248, 5, 0, 0, + 0, 2, 255, 255, 172, 5, 0, 0, 76, 0, 0, 0, 3, 0, 40, 0, 0, 0, 76, 0, 0, 0, 76, 0, @@ -125,236 +143,418 @@ const BYTE DGSLLambert_mainTx[] = 1, 0, 0, 0, 0, 0, 1, 0, 9, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 176, 8, 0, 0, 3, - 1, 0, 24, 128, 6, 0, - 228, 160, 1, 0, 228, 128, + 0, 2, 255, 255, 254, 255, + 15, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 16, 4, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 120, 0, + 0, 0, 23, 0, 0, 0, + 124, 0, 0, 0, 9, 0, + 0, 0, 92, 3, 0, 0, + 68, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 76, 97, 109, 98, + 101, 114, 116, 46, 104, 108, + 115, 108, 0, 171, 171, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 68, 4, 0, 0, + 0, 0, 255, 255, 80, 4, + 0, 0, 0, 0, 255, 255, + 92, 4, 0, 0, 0, 0, + 255, 255, 104, 4, 0, 0, + 149, 0, 0, 0, 116, 4, + 0, 0, 139, 0, 0, 0, + 132, 4, 0, 0, 82, 0, + 0, 0, 144, 4, 0, 0, + 83, 0, 0, 0, 160, 4, + 0, 0, 83, 0, 0, 0, + 176, 4, 0, 0, 145, 0, + 0, 0, 192, 4, 0, 0, + 145, 0, 0, 0, 204, 4, + 0, 0, 82, 0, 0, 0, + 224, 4, 0, 0, 83, 0, + 0, 0, 240, 4, 0, 0, + 145, 0, 0, 0, 0, 5, + 0, 0, 82, 0, 0, 0, + 20, 5, 0, 0, 82, 0, + 0, 0, 36, 5, 0, 0, + 83, 0, 0, 0, 52, 5, + 0, 0, 83, 0, 0, 0, + 68, 5, 0, 0, 145, 0, + 0, 0, 84, 5, 0, 0, + 145, 0, 0, 0, 104, 5, + 0, 0, 149, 0, 0, 0, + 124, 5, 0, 0, 150, 0, + 0, 0, 140, 5, 0, 0, + 149, 0, 0, 0, 156, 5, + 0, 0, 77, 97, 116, 101, + 114, 105, 97, 108, 86, 97, + 114, 115, 0, 77, 97, 116, + 101, 114, 105, 97, 108, 65, + 109, 98, 105, 101, 110, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 65, 109, 111, + 117, 110, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 11, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 14, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 15, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 108, 111, + 99, 97, 108, 51, 0, 171, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 13, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 18, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 19, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 108, 111, 99, 97, 108, 52, + 0, 171, 20, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 108, 111, 99, 97, + 108, 53, 0, 171, 21, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 109, 97, + 105, 110, 84, 120, 0, 102, + 114, 97, 103, 109, 101, 110, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 75, 2, 0, 0, 84, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 100, 2, 0, 0, + 22, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 120, 101, 108, 0, + 112, 111, 115, 0, 117, 118, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 0, + 119, 111, 114, 108, 100, 80, + 111, 115, 0, 116, 111, 69, + 121, 101, 0, 116, 97, 110, + 103, 101, 110, 116, 0, 110, + 111, 114, 109, 97, 108, 0, + 142, 2, 0, 0, 84, 2, + 0, 0, 112, 1, 0, 0, + 84, 2, 0, 0, 146, 2, + 0, 0, 152, 2, 0, 0, + 168, 2, 0, 0, 120, 1, + 0, 0, 178, 2, 0, 0, + 120, 1, 0, 0, 187, 2, + 0, 0, 120, 1, 0, 0, + 193, 2, 0, 0, 84, 2, + 0, 0, 201, 2, 0, 0, + 120, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 208, 2, + 0, 0, 0, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 1, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 2, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 52, 1, 0, 0, + 65, 1, 0, 0, 84, 1, + 0, 0, 1, 0, 0, 0, + 100, 1, 0, 0, 0, 0, + 0, 0, 112, 1, 0, 0, + 120, 1, 0, 0, 1, 0, + 0, 0, 136, 1, 0, 0, + 0, 0, 0, 0, 148, 1, + 0, 0, 164, 1, 0, 0, + 4, 0, 0, 0, 180, 1, + 0, 0, 0, 0, 0, 0, + 228, 1, 0, 0, 120, 1, + 0, 0, 4, 0, 0, 0, + 236, 1, 0, 0, 0, 0, + 0, 0, 28, 2, 0, 0, + 120, 1, 0, 0, 1, 0, + 0, 0, 36, 2, 0, 0, + 0, 0, 0, 0, 48, 2, + 0, 0, 164, 1, 0, 0, + 1, 0, 0, 0, 56, 2, + 0, 0, 0, 0, 0, 0, + 68, 2, 0, 0, 108, 2, + 0, 0, 1, 0, 0, 0, + 124, 2, 0, 0, 68, 2, + 0, 0, 136, 2, 0, 0, + 16, 3, 0, 0, 3, 0, + 0, 0, 32, 3, 0, 0, + 0, 0, 0, 0, 68, 3, + 0, 0, 120, 1, 0, 0, + 1, 0, 0, 0, 80, 3, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 176, + 0, 8, 228, 160, 36, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 176, 8, 0, + 0, 3, 1, 0, 24, 128, + 6, 0, 228, 160, 1, 0, + 228, 128, 5, 0, 0, 3, + 2, 0, 7, 128, 1, 0, + 255, 128, 2, 0, 228, 160, 5, 0, 0, 3, 2, 0, - 7, 128, 1, 0, 255, 128, - 2, 0, 228, 160, 5, 0, - 0, 3, 2, 0, 7, 128, - 2, 0, 228, 128, 0, 0, - 228, 176, 1, 0, 0, 2, - 3, 0, 7, 128, 0, 0, + 7, 128, 2, 0, 228, 128, + 0, 0, 228, 176, 1, 0, + 0, 2, 3, 0, 7, 128, + 0, 0, 228, 160, 4, 0, + 0, 4, 2, 0, 7, 128, + 3, 0, 228, 128, 1, 0, + 228, 160, 2, 0, 228, 128, + 8, 0, 0, 3, 1, 0, + 24, 128, 7, 0, 228, 160, + 1, 0, 228, 128, 5, 0, + 0, 3, 3, 0, 7, 128, + 1, 0, 255, 128, 3, 0, 228, 160, 4, 0, 0, 4, 2, 0, 7, 128, 3, 0, - 228, 128, 1, 0, 228, 160, + 228, 128, 0, 0, 228, 176, 2, 0, 228, 128, 8, 0, 0, 3, 1, 0, 24, 128, - 7, 0, 228, 160, 1, 0, - 228, 128, 5, 0, 0, 3, - 3, 0, 7, 128, 1, 0, - 255, 128, 3, 0, 228, 160, - 4, 0, 0, 4, 2, 0, - 7, 128, 3, 0, 228, 128, - 0, 0, 228, 176, 2, 0, + 8, 0, 228, 160, 1, 0, 228, 128, 8, 0, 0, 3, - 1, 0, 24, 128, 8, 0, + 2, 0, 24, 128, 9, 0, 228, 160, 1, 0, 228, 128, - 8, 0, 0, 3, 2, 0, - 24, 128, 9, 0, 228, 160, - 1, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 2, 0, 255, 128, 5, 0, - 228, 160, 5, 0, 0, 3, - 3, 0, 7, 128, 1, 0, - 255, 128, 4, 0, 228, 160, - 4, 0, 0, 4, 2, 0, - 7, 128, 3, 0, 228, 128, - 0, 0, 228, 176, 2, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 23, 128, 1, 0, + 5, 0, 0, 3, 1, 0, + 7, 128, 2, 0, 255, 128, + 5, 0, 228, 160, 5, 0, + 0, 3, 3, 0, 7, 128, + 1, 0, 255, 128, 4, 0, + 228, 160, 4, 0, 0, 4, + 2, 0, 7, 128, 3, 0, 228, 128, 0, 0, 228, 176, - 2, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 0, 0, 255, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 1, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 220, 2, 0, 0, - 64, 0, 0, 0, 183, 0, + 2, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 23, 128, + 1, 0, 228, 128, 0, 0, + 228, 176, 2, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 228, 128, + 1, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 8, 128, + 0, 0, 255, 128, 0, 0, + 255, 176, 1, 0, 0, 2, + 0, 8, 15, 128, 1, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 220, 2, + 0, 0, 64, 0, 0, 0, + 183, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 2, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 3, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 70, 18, 16, 0, 3, 0, - 0, 0, 68, 0, 0, 5, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, + 70, 142, 32, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 90, 0, 0, 3, 0, 96, + 16, 0, 0, 0, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 0, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 3, 0, 0, 0, + 16, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 3, 0, - 0, 0, 16, 32, 0, 8, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 9, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 68, 0, + 0, 5, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 32, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 10, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 32, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 16, 32, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 32, 0, 8, 18, 0, + 9, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 11, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 16, 32, 0, 8, + 130, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 10, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, 2, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 50, 0, 0, 9, 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 50, 32, 0, 9, 114, 0, + 16, 32, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 11, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 16, 32, 0, 8, + 18, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 12, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 0, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 4, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 69, 0, 0, 9, 242, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 50, 32, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 32, + 70, 2, 16, 0, 1, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 32, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 58, 16, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 228, 0, + 56, 0, 0, 7, 130, 32, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 58, 16, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 228, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 200, 0, + 200, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 212, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 218, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 218, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 7, 7, 0, 0, + 218, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 218, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 7, 7, 0, 0, 218, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 7, 0, 0, 0, 218, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 5, 0, 0, 0, - 7, 0, 0, 0, 218, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 6, 0, 0, 0, - 15, 0, 0, 0, 218, 0, - 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, - 7, 0, 0, 0, 83, 86, - 95, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 218, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 5, 0, + 0, 0, 7, 0, 0, 0, + 218, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 218, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 7, 0, + 0, 0, 7, 0, 0, 0, + 83, 86, 95, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTxTk.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTxTk.inc index 62c457bba3c2d5480043e5c22d52a1976e97011c..ed82216ea42de3af6f51ec6f409ef1c8e9de9a84 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTxTk.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLLambert_mainTxTk.inc @@ -44,32 +44,58 @@ // ps_2_0 def c10, -1, -0, 0, 0 - dcl t0 - dcl t1.xy - dcl t2.xyz + dcl t0 // pixel<4,5,6,7> + dcl t1.xy // pixel<8,9> + dcl t2.xyz // pixel<10,11,12> dcl_2d s0 + +#line 170 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLLambert.hlsl" texld r0, t1, s0 - mul r1.w, r0.w, t0.w + mul r1.w, r0.w, t0.w // ::local5<0> + +#line 174 mul r0.w, r1.w, r1.w cmp r2, -r0.w, c10.x, c10.y texkill r2 - nrm r2.xyz, t2 - dp3_sat r0.w, c6, r2 + +#line 160 + nrm r2.xyz, t2 // ::worldNormal<0,1,2> + +#line 82 + dp3_sat r0.w, c6, r2 // ::diffuseAmount<0> mul r3.xyz, r0.w, c2 - mul r3.xyz, r3, t0 - mov r4.xyz, c0 - mad r3.xyz, r4, c1, r3 - dp3_sat r0.w, c7, r2 + mul r3.xyz, r3, t0 // ::diffuse<0,1,2> + +#line 166 + mov r4.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r3.xyz, r4, c1, r3 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c7, r2 // ::diffuseAmount<0> mul r4.xyz, r0.w, c3 - mad r3.xyz, r4, t0, r3 - dp3_sat r0.w, c8, r2 + +#line 166 + mad r3.xyz, r4, t0, r3 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c8, r2 // ::diffuseAmount<0> mul r4.xyz, r0.w, c4 - mad r3.xyz, r4, t0, r3 - dp3_sat r0.w, c9, r2 + +#line 166 + mad r3.xyz, r4, t0, r3 // ::local3<0,1,2> + +#line 82 + dp3_sat r0.w, c9, r2 // ::diffuseAmount<0> mul r2.xyz, r0.w, c5 - mad_sat r2.xyz, r2, t0, r3 - mul r1.xyz, r0, r2 - mov oC0, r1 + +#line 166 + mad_sat r2.xyz, r2, t0, r3 // ::local3<0,1,2> + +#line 170 + mul r1.xyz, r0, r2 // ::local4<0,1,2> + +#line 176 + mov oC0, r1 // ::mainTxTk<0,1,2,3> // approximately 24 instruction slots used (1 texture, 23 arithmetic) ps_4_0 @@ -110,17 +136,17 @@ ret const BYTE DGSLLambert_mainTxTk[] = { - 68, 88, 66, 67, 107, 124, - 177, 187, 78, 194, 93, 193, - 234, 37, 210, 51, 232, 235, - 240, 102, 1, 0, 0, 0, - 116, 6, 0, 0, 4, 0, + 68, 88, 66, 67, 128, 125, + 248, 122, 94, 37, 149, 31, + 121, 205, 195, 201, 166, 72, + 161, 102, 1, 0, 0, 0, + 216, 10, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 52, 2, 0, 0, 84, 5, - 0, 0, 64, 6, 0, 0, - 65, 111, 110, 57, 252, 1, - 0, 0, 252, 1, 0, 0, - 0, 2, 255, 255, 176, 1, + 152, 6, 0, 0, 184, 9, + 0, 0, 164, 10, 0, 0, + 65, 111, 110, 57, 96, 6, + 0, 0, 96, 6, 0, 0, + 0, 2, 255, 255, 20, 6, 0, 0, 76, 0, 0, 0, 3, 0, 40, 0, 0, 0, 76, 0, 0, 0, 76, 0, @@ -132,163 +158,367 @@ const BYTE DGSLLambert_mainTxTk[] = 1, 0, 0, 0, 0, 0, 1, 0, 9, 0, 4, 0, 6, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 81, 0, - 0, 5, 10, 0, 15, 160, - 0, 0, 128, 191, 0, 0, - 0, 128, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 0, 0, 255, 176, - 5, 0, 0, 3, 0, 0, - 8, 128, 1, 0, 255, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 2, 0, 15, 128, - 0, 0, 255, 129, 10, 0, - 0, 160, 10, 0, 85, 160, - 65, 0, 0, 1, 2, 0, - 15, 128, 36, 0, 0, 2, - 2, 0, 7, 128, 2, 0, - 228, 176, 8, 0, 0, 3, - 0, 0, 24, 128, 6, 0, - 228, 160, 2, 0, 228, 128, + 0, 2, 255, 255, 254, 255, + 24, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 52, 4, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 120, 0, + 0, 0, 27, 0, 0, 0, + 124, 0, 0, 0, 9, 0, + 0, 0, 128, 3, 0, 0, + 100, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 76, 97, 109, 98, + 101, 114, 116, 46, 104, 108, + 115, 108, 0, 171, 171, 171, + 40, 0, 0, 0, 0, 0, + 255, 255, 104, 4, 0, 0, + 0, 0, 255, 255, 128, 4, + 0, 0, 0, 0, 255, 255, + 140, 4, 0, 0, 0, 0, + 255, 255, 152, 4, 0, 0, + 0, 0, 255, 255, 164, 4, + 0, 0, 170, 0, 0, 0, + 176, 4, 0, 0, 171, 0, + 0, 0, 192, 4, 0, 0, + 174, 0, 0, 0, 208, 4, + 0, 0, 174, 0, 0, 0, + 224, 4, 0, 0, 174, 0, + 0, 0, 244, 4, 0, 0, + 160, 0, 0, 0, 252, 4, + 0, 0, 82, 0, 0, 0, + 8, 5, 0, 0, 83, 0, + 0, 0, 24, 5, 0, 0, + 83, 0, 0, 0, 40, 5, + 0, 0, 166, 0, 0, 0, + 56, 5, 0, 0, 166, 0, + 0, 0, 68, 5, 0, 0, + 82, 0, 0, 0, 88, 5, + 0, 0, 83, 0, 0, 0, + 104, 5, 0, 0, 166, 0, + 0, 0, 120, 5, 0, 0, + 82, 0, 0, 0, 140, 5, + 0, 0, 83, 0, 0, 0, + 156, 5, 0, 0, 166, 0, + 0, 0, 172, 5, 0, 0, + 82, 0, 0, 0, 192, 5, + 0, 0, 83, 0, 0, 0, + 208, 5, 0, 0, 166, 0, + 0, 0, 224, 5, 0, 0, + 170, 0, 0, 0, 244, 5, + 0, 0, 176, 0, 0, 0, + 4, 6, 0, 0, 77, 97, + 116, 101, 114, 105, 97, 108, + 86, 97, 114, 115, 0, 77, + 97, 116, 101, 114, 105, 97, + 108, 65, 109, 98, 105, 101, + 110, 116, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 65, + 109, 111, 117, 110, 116, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 16, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 19, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 22, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 108, 111, 99, 97, 108, 51, + 0, 171, 15, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 18, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 21, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 24, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 108, 111, 99, 97, + 108, 52, 0, 171, 25, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 108, 111, + 99, 97, 108, 53, 0, 171, + 6, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 109, 97, 105, 110, 84, 120, + 84, 107, 0, 102, 114, 97, + 103, 109, 101, 110, 116, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 109, 2, 0, 0, 120, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 136, 2, 0, 0, + 26, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 120, 101, 108, 0, + 112, 111, 115, 0, 117, 118, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 0, + 119, 111, 114, 108, 100, 80, + 111, 115, 0, 116, 111, 69, + 121, 101, 0, 116, 97, 110, + 103, 101, 110, 116, 0, 110, + 111, 114, 109, 97, 108, 0, + 178, 2, 0, 0, 120, 2, + 0, 0, 144, 1, 0, 0, + 120, 2, 0, 0, 182, 2, + 0, 0, 188, 2, 0, 0, + 204, 2, 0, 0, 152, 1, + 0, 0, 214, 2, 0, 0, + 152, 1, 0, 0, 223, 2, + 0, 0, 152, 1, 0, 0, + 229, 2, 0, 0, 120, 2, + 0, 0, 237, 2, 0, 0, + 152, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 244, 2, + 0, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 84, 1, 0, 0, + 97, 1, 0, 0, 116, 1, + 0, 0, 1, 0, 0, 0, + 132, 1, 0, 0, 0, 0, + 0, 0, 144, 1, 0, 0, + 152, 1, 0, 0, 1, 0, + 0, 0, 168, 1, 0, 0, + 0, 0, 0, 0, 180, 1, + 0, 0, 196, 1, 0, 0, + 4, 0, 0, 0, 212, 1, + 0, 0, 0, 0, 0, 0, + 4, 2, 0, 0, 152, 1, + 0, 0, 4, 0, 0, 0, + 12, 2, 0, 0, 0, 0, + 0, 0, 60, 2, 0, 0, + 152, 1, 0, 0, 1, 0, + 0, 0, 68, 2, 0, 0, + 0, 0, 0, 0, 80, 2, + 0, 0, 196, 1, 0, 0, + 1, 0, 0, 0, 88, 2, + 0, 0, 0, 0, 0, 0, + 100, 2, 0, 0, 144, 2, + 0, 0, 1, 0, 0, 0, + 160, 2, 0, 0, 100, 2, + 0, 0, 172, 2, 0, 0, + 52, 3, 0, 0, 3, 0, + 0, 0, 68, 3, 0, 0, + 0, 0, 0, 0, 104, 3, + 0, 0, 152, 1, 0, 0, + 1, 0, 0, 0, 116, 3, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 10, 0, + 15, 160, 0, 0, 128, 191, + 0, 0, 0, 128, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 176, + 0, 8, 228, 160, 5, 0, + 0, 3, 1, 0, 8, 128, + 0, 0, 255, 128, 0, 0, + 255, 176, 5, 0, 0, 3, + 0, 0, 8, 128, 1, 0, + 255, 128, 1, 0, 255, 128, + 88, 0, 0, 4, 2, 0, + 15, 128, 0, 0, 255, 129, + 10, 0, 0, 160, 10, 0, + 85, 160, 65, 0, 0, 1, + 2, 0, 15, 128, 36, 0, + 0, 2, 2, 0, 7, 128, + 2, 0, 228, 176, 8, 0, + 0, 3, 0, 0, 24, 128, + 6, 0, 228, 160, 2, 0, + 228, 128, 5, 0, 0, 3, + 3, 0, 7, 128, 0, 0, + 255, 128, 2, 0, 228, 160, 5, 0, 0, 3, 3, 0, - 7, 128, 0, 0, 255, 128, - 2, 0, 228, 160, 5, 0, - 0, 3, 3, 0, 7, 128, - 3, 0, 228, 128, 0, 0, - 228, 176, 1, 0, 0, 2, - 4, 0, 7, 128, 0, 0, + 7, 128, 3, 0, 228, 128, + 0, 0, 228, 176, 1, 0, + 0, 2, 4, 0, 7, 128, + 0, 0, 228, 160, 4, 0, + 0, 4, 3, 0, 7, 128, + 4, 0, 228, 128, 1, 0, + 228, 160, 3, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 24, 128, 7, 0, 228, 160, + 2, 0, 228, 128, 5, 0, + 0, 3, 4, 0, 7, 128, + 0, 0, 255, 128, 3, 0, 228, 160, 4, 0, 0, 4, 3, 0, 7, 128, 4, 0, - 228, 128, 1, 0, 228, 160, + 228, 128, 0, 0, 228, 176, 3, 0, 228, 128, 8, 0, 0, 3, 0, 0, 24, 128, - 7, 0, 228, 160, 2, 0, + 8, 0, 228, 160, 2, 0, 228, 128, 5, 0, 0, 3, 4, 0, 7, 128, 0, 0, - 255, 128, 3, 0, 228, 160, + 255, 128, 4, 0, 228, 160, 4, 0, 0, 4, 3, 0, 7, 128, 4, 0, 228, 128, 0, 0, 228, 176, 3, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 24, 128, 8, 0, + 0, 0, 24, 128, 9, 0, 228, 160, 2, 0, 228, 128, - 5, 0, 0, 3, 4, 0, + 5, 0, 0, 3, 2, 0, 7, 128, 0, 0, 255, 128, - 4, 0, 228, 160, 4, 0, - 0, 4, 3, 0, 7, 128, - 4, 0, 228, 128, 0, 0, + 5, 0, 228, 160, 4, 0, + 0, 4, 2, 0, 23, 128, + 2, 0, 228, 128, 0, 0, 228, 176, 3, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 24, 128, 9, 0, 228, 160, - 2, 0, 228, 128, 5, 0, - 0, 3, 2, 0, 7, 128, - 0, 0, 255, 128, 5, 0, - 228, 160, 4, 0, 0, 4, - 2, 0, 23, 128, 2, 0, - 228, 128, 0, 0, 228, 176, - 3, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 0, 0, 228, 128, 2, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 1, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 24, 3, - 0, 0, 64, 0, 0, 0, - 198, 0, 0, 0, 89, 0, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 228, 128, + 2, 0, 228, 128, 1, 0, + 0, 2, 0, 8, 15, 128, + 1, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 24, 3, 0, 0, 64, 0, + 0, 0, 198, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 1, 0, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 4, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, + 1, 0, 0, 0, 13, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 242, 16, + 16, 0, 1, 0, 0, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 98, 16, 0, 3, 114, 16, + 16, 0, 3, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 130, 0, + 104, 0, 0, 2, 4, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 58, 16, + 16, 0, 1, 0, 0, 0, + 24, 0, 0, 7, 18, 0, + 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 0, 0, - 0, 0, 58, 16, 16, 0, - 1, 0, 0, 0, 24, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 13, 0, + 4, 3, 10, 0, 16, 0, + 1, 0, 0, 0, 16, 0, 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 13, 0, 4, 3, - 10, 0, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 7, - 18, 0, 16, 0, 1, 0, - 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 68, 0, 0, 5, 18, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, 1, 0, 0, 0, 70, 18, 16, 0, 3, 0, 0, 0, + 70, 18, 16, 0, 3, 0, + 0, 0, 68, 0, 0, 5, + 18, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 6, 0, + 16, 0, 1, 0, 0, 0, + 70, 18, 16, 0, 3, 0, + 0, 0, 16, 32, 0, 8, + 130, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 9, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, 16, 32, 0, 8, 130, 0, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, + 114, 0, 16, 0, 3, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, + 2, 0, 0, 0, 50, 0, + 0, 9, 114, 0, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 16, 32, 0, 8, 130, 0, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 70, 2, + 11, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, 3, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 50, 0, 0, 9, 114, 0, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, @@ -296,94 +526,77 @@ const BYTE DGSLLambert_mainTxTk[] = 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 16, 32, 0, 8, - 130, 0, 16, 0, 1, 0, + 18, 0, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 11, 0, + 1, 0, 0, 0, 12, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, + 1, 0, 0, 0, 6, 0, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 50, 0, 0, 9, 114, 0, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 16, 32, 0, 8, 18, 0, + 0, 0, 4, 0, 0, 0, + 50, 32, 0, 9, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 12, 0, 0, 0, 70, 2, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 50, 32, - 0, 9, 114, 0, 16, 0, + 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 7, 114, 32, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 218, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 3, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 0, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 0, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 0, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 0, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_main.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_main.inc index 91ae6888480b0bc6750a48a33906b725a46e8888..72ede18b3f52c139c014d5d83af0c95dbd55d3c2 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_main.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_main.inc @@ -40,50 +40,78 @@ // ps_2_0 def c13, 9.99999975e-005, 0, 0, 0 - dcl t0 - dcl t2.xyz - dcl t4.xyz - mov r0.xyz, c1 + dcl t0 // pixel<4,5,6,7> + dcl t2.xyz // pixel<10,11,12> + dcl t4.xyz // pixel<16,17,18> + +#line 104 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLPhong.hlsl" + mov r0.xyz, c1 // MaterialVars::MaterialSpecular<0,1,2> mul r1.xyz, r0, c4 mul r2.xyz, r0, c5 + +#line 122 dp3 r0.w, t4, t4 rsq r0.w, r0.w + +#line 101 mad r3.xyz, t4, r0.w, c8 - nrm r4.xyz, r3 - nrm r3.xyz, t2 - dp3_sat r1.w, r3, r4 - mov r2.w, c2.x + nrm r4.xyz, r3 // ::vHalf<0,1,2> + +#line 121 + nrm r3.xyz, t2 // ::worldNormal<0,1,2> + +#line 102 + dp3_sat r1.w, r3, r4 // ::specularAmount<0> + mov r2.w, c2.x // MaterialVars::MaterialSpecularPower<0> max r3.w, r2.w, c13.x pow r2.w, r1.w, r3.w - mul r1.w, r2.w, c11.x - mul r2.xyz, r1.w, r2 + mul r1.w, r2.w, c11.x // ::specularAmount<0> + mul r2.xyz, r1.w, r2 // ::specular<0,1,2> + +#line 101 mad r4.xyz, t4, r0.w, c7 mad r5.xyz, t4, r0.w, c9 - nrm r6.xyz, r5 - dp3_sat r0.w, r3, r6 + nrm r6.xyz, r5 // ::vHalf<0,1,2> + dp3_sat r0.w, r3, r6 // ::specularAmount<0> pow r1.w, r0.w, r3.w - mul r0.w, r1.w, c12.x - nrm r5.xyz, r4 - dp3_sat r1.w, r3, r5 + mul r0.w, r1.w, c12.x // ::specularAmount<0> + nrm r5.xyz, r4 // ::vHalf<0,1,2> + dp3_sat r1.w, r3, r5 // ::specularAmount<0> pow r2.w, r1.w, r3.w - mul r1.w, r2.w, c10.x - mad r1.xyz, r1, r1.w, r2 + mul r1.w, r2.w, c10.x // ::specularAmount<0> + +#line 130 + mad r1.xyz, r1, r1.w, r2 // ::local4<0,1,2> + +#line 104 mul r0.xyz, r0, c6 - mad r0.xyz, r0, r0.w, r1 - dp3_sat r0.w, c7, r3 + +#line 130 + mad r0.xyz, r0, r0.w, r1 // ::local4<0,1,2> + +#line 82 + dp3_sat r0.w, c7, r3 // ::diffuseAmount<0> mul r1.xyz, r0.w, c4 - mul r1.xyz, r1, t0 - mov r2.xyz, c0 - mad r1.xyz, r2, c3, r1 - dp3_sat r0.w, c8, r3 - dp3_sat r1.w, c9, r3 + mul r1.xyz, r1, t0 // ::diffuse<0,1,2> + +#line 129 + mov r2.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r1.xyz, r2, c3, r1 // ::local1<0,1,2> + +#line 82 + dp3_sat r0.w, c8, r3 // ::diffuseAmount<0> + dp3_sat r1.w, c9, r3 // ::diffuseAmount<0> mul r2.xyz, r1.w, c6 mul r3.xyz, r0.w, c5 - mad r1.xyz, r3, t0, r1 - mad_sat r1.xyz, r2, t0, r1 - add r0.xyz, r0, r1 + +#line 129 + mad r1.xyz, r3, t0, r1 // ::local1<0,1,2> + mad_sat r1.xyz, r2, t0, r1 // ::local1<0,1,2> + +#line 134 + add r0.xyz, r0, r1 // CombineRGBWithAlpha::rgb<0,1,2> mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::main<0,1,2,3> // approximately 55 instruction slots used ps_4_0 @@ -151,17 +179,17 @@ ret const BYTE DGSLPhong_main[] = { - 68, 88, 66, 67, 192, 92, - 10, 227, 116, 179, 173, 54, - 64, 25, 7, 160, 209, 177, - 147, 171, 1, 0, 0, 0, - 196, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 17, 77, + 112, 60, 162, 43, 70, 93, + 242, 209, 41, 52, 161, 117, + 224, 183, 1, 0, 0, 0, + 8, 17, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 112, 3, 0, 0, 164, 9, - 0, 0, 144, 10, 0, 0, - 65, 111, 110, 57, 56, 3, - 0, 0, 56, 3, 0, 0, - 0, 2, 255, 255, 204, 2, + 180, 9, 0, 0, 232, 15, + 0, 0, 212, 16, 0, 0, + 65, 111, 110, 57, 124, 9, + 0, 0, 124, 9, 0, 0, + 0, 2, 255, 255, 16, 9, 0, 0, 108, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -179,436 +207,703 @@ const BYTE DGSLPhong_main[] = 0, 0, 1, 0, 13, 0, 3, 0, 10, 0, 0, 0, 0, 0, 0, 2, 255, 255, - 81, 0, 0, 5, 13, 0, - 15, 160, 23, 183, 209, 56, + 254, 255, 144, 1, 68, 66, + 85, 71, 40, 0, 0, 0, + 20, 6, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 116, 0, 0, 0, 45, 0, + 0, 0, 120, 0, 0, 0, + 14, 0, 0, 0, 252, 4, + 0, 0, 36, 3, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 68, 71, 83, 76, 80, 104, + 111, 110, 103, 46, 104, 108, + 115, 108, 0, 171, 40, 0, + 0, 0, 0, 0, 255, 255, + 72, 6, 0, 0, 0, 0, + 255, 255, 96, 6, 0, 0, + 0, 0, 255, 255, 108, 6, + 0, 0, 0, 0, 255, 255, + 120, 6, 0, 0, 104, 0, + 0, 0, 132, 6, 0, 0, + 104, 0, 0, 0, 144, 6, + 0, 0, 104, 0, 0, 0, + 160, 6, 0, 0, 122, 0, + 0, 0, 176, 6, 0, 0, + 122, 0, 0, 0, 192, 6, + 0, 0, 101, 0, 0, 0, + 204, 6, 0, 0, 101, 0, + 0, 0, 224, 6, 0, 0, + 121, 0, 0, 0, 236, 6, + 0, 0, 102, 0, 0, 0, + 248, 6, 0, 0, 103, 0, + 0, 0, 8, 7, 0, 0, + 103, 0, 0, 0, 20, 7, + 0, 0, 103, 0, 0, 0, + 36, 7, 0, 0, 103, 0, + 0, 0, 52, 7, 0, 0, + 104, 0, 0, 0, 68, 7, + 0, 0, 101, 0, 0, 0, + 84, 7, 0, 0, 101, 0, + 0, 0, 104, 7, 0, 0, + 101, 0, 0, 0, 124, 7, + 0, 0, 102, 0, 0, 0, + 136, 7, 0, 0, 103, 0, + 0, 0, 152, 7, 0, 0, + 103, 0, 0, 0, 168, 7, + 0, 0, 101, 0, 0, 0, + 184, 7, 0, 0, 102, 0, + 0, 0, 196, 7, 0, 0, + 103, 0, 0, 0, 212, 7, + 0, 0, 103, 0, 0, 0, + 228, 7, 0, 0, 130, 0, + 0, 0, 244, 7, 0, 0, + 104, 0, 0, 0, 8, 8, + 0, 0, 130, 0, 0, 0, + 24, 8, 0, 0, 82, 0, + 0, 0, 44, 8, 0, 0, + 83, 0, 0, 0, 60, 8, + 0, 0, 83, 0, 0, 0, + 76, 8, 0, 0, 129, 0, + 0, 0, 92, 8, 0, 0, + 129, 0, 0, 0, 104, 8, + 0, 0, 82, 0, 0, 0, + 124, 8, 0, 0, 82, 0, + 0, 0, 140, 8, 0, 0, + 83, 0, 0, 0, 156, 8, + 0, 0, 83, 0, 0, 0, + 172, 8, 0, 0, 129, 0, + 0, 0, 188, 8, 0, 0, + 129, 0, 0, 0, 208, 8, + 0, 0, 134, 0, 0, 0, + 228, 8, 0, 0, 134, 0, + 0, 0, 244, 8, 0, 0, + 134, 0, 0, 0, 0, 9, + 0, 0, 77, 97, 116, 101, + 114, 105, 97, 108, 86, 97, + 114, 115, 0, 77, 97, 116, + 101, 114, 105, 97, 108, 65, + 109, 98, 105, 101, 110, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 77, 97, 116, 101, + 114, 105, 97, 108, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 4, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 77, 97, + 116, 101, 114, 105, 97, 108, + 83, 112, 101, 99, 117, 108, + 97, 114, 80, 111, 119, 101, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 65, 109, 111, + 117, 110, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 31, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 36, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 37, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 108, 111, + 99, 97, 108, 49, 0, 171, + 35, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 40, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 41, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 108, 111, 99, 97, 108, 52, + 0, 171, 28, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 30, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 109, 97, 105, 110, + 0, 102, 114, 97, 103, 109, + 101, 110, 116, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 41, 3, + 0, 0, 52, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 4, 0, 1, 0, 1, 0, + 68, 3, 0, 0, 44, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 112, 105, + 120, 101, 108, 0, 112, 111, + 115, 0, 117, 118, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 110, 3, + 0, 0, 52, 3, 0, 0, + 112, 2, 0, 0, 52, 3, + 0, 0, 114, 3, 0, 0, + 120, 3, 0, 0, 136, 3, + 0, 0, 120, 2, 0, 0, + 146, 3, 0, 0, 120, 2, + 0, 0, 155, 3, 0, 0, + 120, 2, 0, 0, 161, 3, + 0, 0, 52, 3, 0, 0, + 169, 3, 0, 0, 120, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 26, 0, 1, 0, + 8, 0, 176, 3, 0, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 2, 0, 0, 0, 10, 0, + 11, 0, 12, 0, 255, 255, + 3, 0, 0, 0, 16, 0, + 17, 0, 18, 0, 255, 255, + 67, 111, 109, 98, 105, 110, + 101, 82, 71, 66, 87, 105, + 116, 104, 65, 108, 112, 104, + 97, 0, 114, 103, 98, 0, + 42, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 17, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 115, 112, 101, 99, 117, 108, + 97, 114, 65, 109, 111, 117, + 110, 116, 0, 171, 12, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 16, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 21, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 23, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 25, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 27, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 118, 72, + 97, 108, 102, 0, 171, 171, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 20, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 24, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 11, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 224, 1, 0, 0, 237, 1, + 0, 0, 0, 2, 0, 0, + 1, 0, 0, 0, 16, 2, + 0, 0, 224, 1, 0, 0, + 28, 2, 0, 0, 0, 2, + 0, 0, 1, 0, 0, 0, + 48, 2, 0, 0, 224, 1, + 0, 0, 60, 2, 0, 0, + 84, 2, 0, 0, 1, 0, + 0, 0, 100, 2, 0, 0, + 0, 0, 0, 0, 112, 2, + 0, 0, 120, 2, 0, 0, + 1, 0, 0, 0, 136, 2, 0, 0, 0, 0, 0, 0, + 148, 2, 0, 0, 164, 2, + 0, 0, 3, 0, 0, 0, + 180, 2, 0, 0, 0, 0, + 0, 0, 216, 2, 0, 0, + 120, 2, 0, 0, 3, 0, + 0, 0, 224, 2, 0, 0, + 0, 0, 0, 0, 4, 3, + 0, 0, 120, 2, 0, 0, + 2, 0, 0, 0, 12, 3, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 2, 0, 7, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 4, 0, 7, 176, - 1, 0, 0, 2, 0, 0, - 7, 128, 1, 0, 228, 160, - 5, 0, 0, 3, 1, 0, - 7, 128, 0, 0, 228, 128, - 4, 0, 228, 160, 5, 0, - 0, 3, 2, 0, 7, 128, - 0, 0, 228, 128, 5, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 8, 128, 4, 0, - 228, 176, 4, 0, 228, 176, - 7, 0, 0, 2, 0, 0, - 8, 128, 0, 0, 255, 128, - 4, 0, 0, 4, 3, 0, - 7, 128, 4, 0, 228, 176, - 0, 0, 255, 128, 8, 0, - 228, 160, 36, 0, 0, 2, - 4, 0, 7, 128, 3, 0, - 228, 128, 36, 0, 0, 2, - 3, 0, 7, 128, 2, 0, - 228, 176, 8, 0, 0, 3, - 1, 0, 24, 128, 3, 0, - 228, 128, 4, 0, 228, 128, - 1, 0, 0, 2, 2, 0, - 8, 128, 2, 0, 0, 160, - 11, 0, 0, 3, 3, 0, - 8, 128, 2, 0, 255, 128, - 13, 0, 0, 160, 32, 0, - 0, 3, 2, 0, 8, 128, - 1, 0, 255, 128, 3, 0, - 255, 128, 5, 0, 0, 3, - 1, 0, 8, 128, 2, 0, - 255, 128, 11, 0, 0, 160, + 36, 3, 0, 0, 76, 3, + 0, 0, 1, 0, 0, 0, + 92, 3, 0, 0, 36, 3, + 0, 0, 104, 3, 0, 0, + 240, 3, 0, 0, 3, 0, + 0, 0, 0, 4, 0, 0, + 36, 4, 0, 0, 56, 4, + 0, 0, 120, 2, 0, 0, + 1, 0, 0, 0, 60, 4, + 0, 0, 0, 0, 0, 0, + 72, 4, 0, 0, 120, 2, + 0, 0, 1, 0, 0, 0, + 84, 4, 0, 0, 0, 0, + 0, 0, 96, 4, 0, 0, + 164, 2, 0, 0, 6, 0, + 0, 0, 112, 4, 0, 0, + 0, 0, 0, 0, 184, 4, + 0, 0, 120, 2, 0, 0, + 3, 0, 0, 0, 192, 4, + 0, 0, 0, 0, 0, 0, + 228, 4, 0, 0, 120, 2, + 0, 0, 1, 0, 0, 0, + 240, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 13, 0, 15, 160, 23, 183, + 209, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 2, 0, + 7, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 4, 0, + 7, 176, 1, 0, 0, 2, + 0, 0, 7, 128, 1, 0, + 228, 160, 5, 0, 0, 3, + 1, 0, 7, 128, 0, 0, + 228, 128, 4, 0, 228, 160, 5, 0, 0, 3, 2, 0, - 7, 128, 1, 0, 255, 128, - 2, 0, 228, 128, 4, 0, - 0, 4, 4, 0, 7, 128, - 4, 0, 228, 176, 0, 0, - 255, 128, 7, 0, 228, 160, - 4, 0, 0, 4, 5, 0, - 7, 128, 4, 0, 228, 176, - 0, 0, 255, 128, 9, 0, - 228, 160, 36, 0, 0, 2, - 6, 0, 7, 128, 5, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 24, 128, 3, 0, - 228, 128, 6, 0, 228, 128, - 32, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 3, 0, 255, 128, 5, 0, + 7, 128, 0, 0, 228, 128, + 5, 0, 228, 160, 8, 0, 0, 3, 0, 0, 8, 128, - 1, 0, 255, 128, 12, 0, - 0, 160, 36, 0, 0, 2, - 5, 0, 7, 128, 4, 0, - 228, 128, 8, 0, 0, 3, - 1, 0, 24, 128, 3, 0, - 228, 128, 5, 0, 228, 128, + 4, 0, 228, 176, 4, 0, + 228, 176, 7, 0, 0, 2, + 0, 0, 8, 128, 0, 0, + 255, 128, 4, 0, 0, 4, + 3, 0, 7, 128, 4, 0, + 228, 176, 0, 0, 255, 128, + 8, 0, 228, 160, 36, 0, + 0, 2, 4, 0, 7, 128, + 3, 0, 228, 128, 36, 0, + 0, 2, 3, 0, 7, 128, + 2, 0, 228, 176, 8, 0, + 0, 3, 1, 0, 24, 128, + 3, 0, 228, 128, 4, 0, + 228, 128, 1, 0, 0, 2, + 2, 0, 8, 128, 2, 0, + 0, 160, 11, 0, 0, 3, + 3, 0, 8, 128, 2, 0, + 255, 128, 13, 0, 0, 160, 32, 0, 0, 3, 2, 0, 8, 128, 1, 0, 255, 128, 3, 0, 255, 128, 5, 0, 0, 3, 1, 0, 8, 128, - 2, 0, 255, 128, 10, 0, - 0, 160, 4, 0, 0, 4, - 1, 0, 7, 128, 1, 0, - 228, 128, 1, 0, 255, 128, - 2, 0, 228, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 6, 0, + 2, 0, 255, 128, 11, 0, + 0, 160, 5, 0, 0, 3, + 2, 0, 7, 128, 1, 0, + 255, 128, 2, 0, 228, 128, + 4, 0, 0, 4, 4, 0, + 7, 128, 4, 0, 228, 176, + 0, 0, 255, 128, 7, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 7, 128, 0, 0, - 228, 128, 0, 0, 255, 128, - 1, 0, 228, 128, 8, 0, + 5, 0, 7, 128, 4, 0, + 228, 176, 0, 0, 255, 128, + 9, 0, 228, 160, 36, 0, + 0, 2, 6, 0, 7, 128, + 5, 0, 228, 128, 8, 0, 0, 3, 0, 0, 24, 128, - 7, 0, 228, 160, 3, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 7, 128, 0, 0, - 255, 128, 4, 0, 228, 160, + 3, 0, 228, 128, 6, 0, + 228, 128, 32, 0, 0, 3, + 1, 0, 8, 128, 0, 0, + 255, 128, 3, 0, 255, 128, + 5, 0, 0, 3, 0, 0, + 8, 128, 1, 0, 255, 128, + 12, 0, 0, 160, 36, 0, + 0, 2, 5, 0, 7, 128, + 4, 0, 228, 128, 8, 0, + 0, 3, 1, 0, 24, 128, + 3, 0, 228, 128, 5, 0, + 228, 128, 32, 0, 0, 3, + 2, 0, 8, 128, 1, 0, + 255, 128, 3, 0, 255, 128, 5, 0, 0, 3, 1, 0, - 7, 128, 1, 0, 228, 128, - 0, 0, 228, 176, 1, 0, - 0, 2, 2, 0, 7, 128, - 0, 0, 228, 160, 4, 0, + 8, 128, 2, 0, 255, 128, + 10, 0, 0, 160, 4, 0, 0, 4, 1, 0, 7, 128, - 2, 0, 228, 128, 3, 0, - 228, 160, 1, 0, 228, 128, + 1, 0, 228, 128, 1, 0, + 255, 128, 2, 0, 228, 128, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 6, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 128, + 0, 0, 228, 128, 0, 0, + 255, 128, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 24, 128, 8, 0, 228, 160, - 3, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 24, 128, - 9, 0, 228, 160, 3, 0, - 228, 128, 5, 0, 0, 3, - 2, 0, 7, 128, 1, 0, - 255, 128, 6, 0, 228, 160, - 5, 0, 0, 3, 3, 0, - 7, 128, 0, 0, 255, 128, - 5, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 3, 0, 228, 128, 0, 0, - 228, 176, 1, 0, 228, 128, + 24, 128, 7, 0, 228, 160, + 3, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 7, 128, + 0, 0, 255, 128, 4, 0, + 228, 160, 5, 0, 0, 3, + 1, 0, 7, 128, 1, 0, + 228, 128, 0, 0, 228, 176, + 1, 0, 0, 2, 2, 0, + 7, 128, 0, 0, 228, 160, 4, 0, 0, 4, 1, 0, - 23, 128, 2, 0, 228, 128, + 7, 128, 2, 0, 228, 128, + 3, 0, 228, 160, 1, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 24, 128, 8, 0, + 228, 160, 3, 0, 228, 128, + 8, 0, 0, 3, 1, 0, + 24, 128, 9, 0, 228, 160, + 3, 0, 228, 128, 5, 0, + 0, 3, 2, 0, 7, 128, + 1, 0, 255, 128, 6, 0, + 228, 160, 5, 0, 0, 3, + 3, 0, 7, 128, 0, 0, + 255, 128, 5, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 3, 0, 228, 128, 0, 0, 228, 176, 1, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 128, 0, 0, 255, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 44, 6, 0, 0, - 64, 0, 0, 0, 139, 1, + 228, 128, 4, 0, 0, 4, + 1, 0, 23, 128, 2, 0, + 228, 128, 0, 0, 228, 176, + 1, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 128, 0, 0, + 255, 176, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 44, 6, + 0, 0, 64, 0, 0, 0, + 139, 1, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 1, 0, 0, 0, - 16, 0, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 1, 0, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 3, 0, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 5, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 5, 0, 0, 0, - 56, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 9, 114, 0, + 70, 142, 32, 0, 1, 0, + 0, 0, 16, 0, 0, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 98, 16, 0, 3, 114, 16, + 16, 0, 3, 0, 0, 0, + 98, 16, 0, 3, 114, 16, + 16, 0, 5, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 5, 0, + 104, 0, 0, 2, 5, 0, + 0, 0, 56, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 9, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, - 5, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, + 5, 0, 0, 0, 70, 18, + 16, 0, 5, 0, 0, 0, + 68, 0, 0, 5, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 2, 0, + 0, 0, 70, 18, 16, 0, + 5, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 114, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 10, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 5, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 16, 0, + 246, 15, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 2, 0, + 1, 0, 0, 0, 70, 18, + 16, 0, 3, 0, 0, 0, + 70, 18, 16, 0, 3, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, - 2, 0, 0, 0, 246, 15, + 3, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 16, 0, 0, 7, + 70, 18, 16, 0, 3, 0, + 0, 0, 16, 32, 0, 7, 130, 0, 16, 0, 1, 0, - 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 47, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 3, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 18, - 16, 0, 3, 0, 0, 0, - 16, 32, 0, 7, 130, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 47, 0, - 0, 5, 130, 0, 16, 0, + 0, 0, 52, 0, 0, 8, + 18, 0, 16, 0, 2, 0, + 0, 0, 10, 128, 32, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 23, 183, 209, 56, 56, 0, + 0, 7, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, - 52, 0, 0, 8, 18, 0, - 16, 0, 2, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 23, 183, - 209, 56, 56, 0, 0, 7, + 10, 0, 16, 0, 2, 0, + 0, 0, 25, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 130, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 8, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 10, 128, - 32, 0, 1, 0, 0, 0, - 14, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 10, 128, 32, 0, 1, 0, + 0, 0, 14, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 246, 15, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 226, 0, 16, 0, + 2, 0, 0, 0, 6, 25, + 16, 0, 5, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 137, 32, 0, + 1, 0, 0, 0, 9, 0, 0, 0, 50, 0, 0, 10, - 226, 0, 16, 0, 2, 0, - 0, 0, 6, 25, 16, 0, + 114, 0, 16, 0, 4, 0, + 0, 0, 70, 18, 16, 0, 5, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 6, 137, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 4, 0, 0, 0, - 70, 18, 16, 0, 5, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 150, 7, + 70, 130, 32, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 150, 7, 16, 0, 2, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 226, 0, 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 86, 14, 16, 0, + 2, 0, 0, 0, 16, 32, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, 150, 7, 16, 0, 2, 0, - 0, 0, 68, 0, 0, 5, + 0, 0, 47, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, - 0, 7, 226, 0, 16, 0, - 2, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 86, 14, 16, 0, 2, 0, - 0, 0, 16, 32, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 150, 7, - 16, 0, 2, 0, 0, 0, - 47, 0, 0, 5, 130, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, + 10, 0, 16, 0, 2, 0, + 0, 0, 25, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 130, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, + 10, 128, 32, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 50, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 9, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, + 70, 2, 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 9, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 16, 0, + 4, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 226, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 9, 16, 0, + 4, 0, 0, 0, 16, 32, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 68, 0, 0, 5, + 16, 0, 3, 0, 0, 0, + 150, 7, 16, 0, 2, 0, + 0, 0, 47, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, - 0, 7, 226, 0, 16, 0, - 2, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 6, 9, 16, 0, 4, 0, - 0, 0, 16, 32, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 150, 7, - 16, 0, 2, 0, 0, 0, - 47, 0, 0, 5, 130, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, + 10, 0, 16, 0, 2, 0, + 0, 0, 25, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 130, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, + 10, 128, 32, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 50, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 32, - 0, 8, 130, 0, 16, 0, + 16, 0, 0, 0, 0, 0, + 16, 32, 0, 8, 130, 0, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 9, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 9, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 56, 0, 0, 8, 114, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 7, + 70, 18, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, + 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 32, 0, 8, - 130, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 10, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 32, + 1, 0, 0, 0, 16, 32, 0, 8, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 130, + 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 70, 2, + 10, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 3, 0, + 16, 32, 0, 8, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 3, 0, + 114, 0, 16, 0, 2, 0, 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, + 1, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, + 3, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 3, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 50, 0, 0, 9, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 32, - 0, 9, 114, 0, 16, 0, + 16, 0, 1, 0, 0, 0, + 50, 32, 0, 9, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 7, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 7, 114, 32, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 16, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 16, + 16, 0, 1, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 218, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 0, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 0, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 0, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 0, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTk.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTk.inc index 5a3702c8cb6a82cd84df8b60a4ee5587b2ee1925..c37e2340353e2ca7cb6c1a3972a38f3cddd091ac 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTk.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTk.inc @@ -40,53 +40,89 @@ // ps_2_0 def c13, -1, -0, 9.99999975e-005, 0 - dcl t0 - dcl t2.xyz - dcl t4.xyz + dcl t0 // pixel<4,5,6,7> + dcl t2.xyz // pixel<10,11,12> + dcl t4.xyz // pixel<16,17,18> + +#line 158 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLPhong.hlsl" mul r0.w, t0.w, t0.w cmp r0, -r0.w, c13.x, c13.y texkill r0 + +#line 144 dp3 r0.x, t4, t4 rsq r0.x, r0.x + +#line 101 mad r1.xyz, t4, r0.x, c9 - nrm r2.xyz, r1 - nrm r1.xyz, t2 - dp3_sat r1.w, r1, r2 - dp3_sat r0.y, c7, r1 + nrm r2.xyz, r1 // ::vHalf<0,1,2> + +#line 143 + nrm r1.xyz, t2 // ::worldNormal<0,1,2> + +#line 102 + dp3_sat r1.w, r1, r2 // ::specularAmount<0> + +#line 82 + dp3_sat r0.y, c7, r1 // ::diffuseAmount<0> mul r0.yzw, r0.y, c4.wzyx - mul r0.yzw, r0, t0.wzyx - mov r2.xyz, c0 - mad r0.yzw, r2.wzyx, c3.wzyx, r0 + mul r0.yzw, r0, t0.wzyx // ::diffuse<2,1,0> + +#line 151 + mov r2.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r0.yzw, r2.wzyx, c3.wzyx, r0 // ::local1<2,1,0> + +#line 103 mov r2.z, c13.z max r3.w, c2.x, r2.z - dp3_sat r2.x, c8, r1 + +#line 82 + dp3_sat r2.x, c8, r1 // ::diffuseAmount<0> mul r2.xyz, r2.x, c5 - mad r0.yzw, r2.wzyx, t0.wzyx, r0 - dp3_sat r2.x, c9, r1 + +#line 151 + mad r0.yzw, r2.wzyx, t0.wzyx, r0 // ::local1<2,1,0> + +#line 82 + dp3_sat r2.x, c9, r1 // ::diffuseAmount<0> mul r2.xyz, r2.x, c6 - mad_sat r0.yzw, r2.wzyx, t0.wzyx, r0 + +#line 151 + mad_sat r0.yzw, r2.wzyx, t0.wzyx, r0 // ::local1<2,1,0> + +#line 103 pow r2.x, r1.w, r3.w - mul r1.w, r2.x, c12.x + mul r1.w, r2.x, c12.x // ::specularAmount<0> mad r2.xyz, t4, r0.x, c8 - nrm r3.xyz, r2 - dp3_sat r2.x, r1, r3 + nrm r3.xyz, r2 // ::vHalf<0,1,2> + dp3_sat r2.x, r1, r3 // ::specularAmount<0> pow r4.w, r2.x, r3.w - mul r2.x, r4.w, c11.x + mul r2.x, r4.w, c11.x // ::specularAmount<0> mad r3.xyz, t4, r0.x, c7 - nrm r4.xyz, r3 - dp3_sat r0.x, r1, r4 + nrm r4.xyz, r3 // ::vHalf<0,1,2> + dp3_sat r0.x, r1, r4 // ::specularAmount<0> pow r1.x, r0.x, r3.w - mul r0.x, r1.x, c10.x - mov r1.xyz, c1 + mul r0.x, r1.x, c10.x // ::specularAmount<0> + mov r1.xyz, c1 // MaterialVars::MaterialSpecular<0,1,2> mul r2.yzw, r1.wzyx, c5.wzyx - mul r2.xyz, r2.x, r2.wzyx + mul r2.xyz, r2.x, r2.wzyx // ::specular<0,1,2> mul r3.xyz, r1, c4 - mad r2.xyz, r3, r0.x, r2 + +#line 152 + mad r2.xyz, r3, r0.x, r2 // ::local4<0,1,2> + +#line 104 mul r1.xyz, r1, c6 - mad r1.xyz, r1, r1.w, r2 - add r0.xyz, r0.wzyx, r1 + +#line 152 + mad r1.xyz, r1, r1.w, r2 // ::local4<0,1,2> + +#line 156 + add r0.xyz, r0.wzyx, r1 // CombineRGBWithAlpha::rgb<0,1,2> + +#line 160 mov r0.w, t0.w - mov oC0, r0 + mov oC0, r0 // ::mainTk<0,1,2,3> // approximately 58 instruction slots used ps_4_0 @@ -156,17 +192,17 @@ ret const BYTE DGSLPhong_mainTk[] = { - 68, 88, 66, 67, 221, 72, - 234, 251, 154, 213, 166, 22, - 92, 34, 162, 216, 59, 148, - 181, 251, 1, 0, 0, 0, - 24, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 51, 165, + 242, 85, 14, 19, 213, 109, + 6, 209, 238, 155, 101, 203, + 99, 253, 1, 0, 0, 0, + 44, 17, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 156, 3, 0, 0, 248, 9, - 0, 0, 228, 10, 0, 0, - 65, 111, 110, 57, 100, 3, - 0, 0, 100, 3, 0, 0, - 0, 2, 255, 255, 248, 2, + 176, 9, 0, 0, 12, 16, + 0, 0, 248, 16, 0, 0, + 65, 111, 110, 57, 120, 9, + 0, 0, 120, 9, 0, 0, + 0, 2, 255, 255, 12, 9, 0, 0, 108, 0, 0, 0, 6, 0, 36, 0, 0, 0, 108, 0, 0, 0, 108, 0, @@ -184,450 +220,709 @@ const BYTE DGSLPhong_mainTk[] = 0, 0, 1, 0, 13, 0, 3, 0, 10, 0, 0, 0, 0, 0, 0, 2, 255, 255, - 81, 0, 0, 5, 13, 0, - 15, 160, 0, 0, 128, 191, - 0, 0, 0, 128, 23, 183, - 209, 56, 0, 0, 0, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 2, 0, 7, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 4, 0, 7, 176, + 254, 255, 132, 1, 68, 66, + 85, 71, 40, 0, 0, 0, + 228, 5, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 116, 0, 0, 0, 48, 0, + 0, 0, 120, 0, 0, 0, + 13, 0, 0, 0, 224, 4, + 0, 0, 8, 3, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 68, 71, 83, 76, 80, 104, + 111, 110, 103, 46, 104, 108, + 115, 108, 0, 171, 40, 0, + 0, 0, 0, 0, 255, 255, + 24, 6, 0, 0, 0, 0, + 255, 255, 48, 6, 0, 0, + 0, 0, 255, 255, 60, 6, + 0, 0, 0, 0, 255, 255, + 72, 6, 0, 0, 158, 0, + 0, 0, 84, 6, 0, 0, + 158, 0, 0, 0, 100, 6, + 0, 0, 158, 0, 0, 0, + 120, 6, 0, 0, 144, 0, + 0, 0, 128, 6, 0, 0, + 144, 0, 0, 0, 144, 6, + 0, 0, 101, 0, 0, 0, + 156, 6, 0, 0, 101, 0, + 0, 0, 176, 6, 0, 0, + 143, 0, 0, 0, 188, 6, + 0, 0, 102, 0, 0, 0, + 200, 6, 0, 0, 82, 0, + 0, 0, 216, 6, 0, 0, + 83, 0, 0, 0, 232, 6, + 0, 0, 83, 0, 0, 0, + 248, 6, 0, 0, 151, 0, + 0, 0, 8, 7, 0, 0, + 151, 0, 0, 0, 20, 7, + 0, 0, 103, 0, 0, 0, + 40, 7, 0, 0, 103, 0, + 0, 0, 52, 7, 0, 0, + 82, 0, 0, 0, 68, 7, + 0, 0, 83, 0, 0, 0, + 84, 7, 0, 0, 151, 0, + 0, 0, 100, 7, 0, 0, + 82, 0, 0, 0, 120, 7, + 0, 0, 83, 0, 0, 0, + 136, 7, 0, 0, 151, 0, + 0, 0, 152, 7, 0, 0, + 103, 0, 0, 0, 172, 7, + 0, 0, 103, 0, 0, 0, + 188, 7, 0, 0, 101, 0, + 0, 0, 204, 7, 0, 0, + 101, 0, 0, 0, 224, 7, + 0, 0, 102, 0, 0, 0, + 236, 7, 0, 0, 103, 0, + 0, 0, 252, 7, 0, 0, + 103, 0, 0, 0, 12, 8, + 0, 0, 101, 0, 0, 0, + 28, 8, 0, 0, 101, 0, + 0, 0, 48, 8, 0, 0, + 102, 0, 0, 0, 60, 8, + 0, 0, 103, 0, 0, 0, + 76, 8, 0, 0, 103, 0, + 0, 0, 92, 8, 0, 0, + 104, 0, 0, 0, 108, 8, + 0, 0, 104, 0, 0, 0, + 120, 8, 0, 0, 104, 0, + 0, 0, 136, 8, 0, 0, + 104, 0, 0, 0, 152, 8, + 0, 0, 152, 0, 0, 0, + 168, 8, 0, 0, 104, 0, + 0, 0, 188, 8, 0, 0, + 152, 0, 0, 0, 204, 8, + 0, 0, 156, 0, 0, 0, + 224, 8, 0, 0, 160, 0, + 0, 0, 240, 8, 0, 0, + 160, 0, 0, 0, 252, 8, + 0, 0, 77, 97, 116, 101, + 114, 105, 97, 108, 86, 97, + 114, 115, 0, 77, 97, 116, + 101, 114, 105, 97, 108, 65, + 109, 98, 105, 101, 110, 116, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 77, 97, 116, 101, + 114, 105, 97, 108, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 38, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 255, 255, 2, 0, + 1, 0, 0, 0, 100, 105, + 102, 102, 117, 115, 101, 65, + 109, 111, 117, 110, 116, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 255, 255, + 0, 0, 255, 255, 255, 255, + 20, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 23, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 108, 111, 99, 97, 108, 49, + 0, 171, 17, 0, 0, 0, + 255, 255, 2, 0, 1, 0, + 0, 0, 22, 0, 0, 0, + 255, 255, 2, 0, 1, 0, + 0, 0, 25, 0, 0, 0, + 255, 255, 2, 0, 1, 0, + 0, 0, 108, 111, 99, 97, + 108, 52, 0, 171, 42, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 44, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 109, 97, + 105, 110, 84, 107, 0, 102, + 114, 97, 103, 109, 101, 110, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 15, 3, 0, 0, 24, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 40, 3, 0, 0, + 47, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 120, 101, 108, 0, + 112, 111, 115, 0, 117, 118, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 0, + 119, 111, 114, 108, 100, 80, + 111, 115, 0, 116, 111, 69, + 121, 101, 0, 116, 97, 110, + 103, 101, 110, 116, 0, 110, + 111, 114, 109, 97, 108, 0, + 82, 3, 0, 0, 24, 3, + 0, 0, 84, 2, 0, 0, + 24, 3, 0, 0, 86, 3, + 0, 0, 92, 3, 0, 0, + 108, 3, 0, 0, 92, 2, + 0, 0, 118, 3, 0, 0, + 92, 2, 0, 0, 127, 3, + 0, 0, 92, 2, 0, 0, + 133, 3, 0, 0, 24, 3, + 0, 0, 141, 3, 0, 0, + 92, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 148, 3, + 0, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 3, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 67, 111, 109, 98, + 105, 110, 101, 82, 71, 66, + 87, 105, 116, 104, 65, 108, + 112, 104, 97, 0, 114, 103, + 98, 0, 45, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 40, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 65, 109, + 111, 117, 110, 116, 0, 171, + 12, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 27, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 30, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 32, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 35, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 37, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 118, 72, 97, 108, 102, 0, + 171, 171, 10, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 29, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 34, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 248, 1, 0, 0, + 5, 2, 0, 0, 24, 2, + 0, 0, 1, 0, 0, 0, + 40, 2, 0, 0, 248, 1, + 0, 0, 52, 2, 0, 0, + 24, 2, 0, 0, 1, 0, + 0, 0, 72, 2, 0, 0, + 0, 0, 0, 0, 84, 2, + 0, 0, 92, 2, 0, 0, + 1, 0, 0, 0, 108, 2, + 0, 0, 0, 0, 0, 0, + 120, 2, 0, 0, 136, 2, + 0, 0, 3, 0, 0, 0, + 152, 2, 0, 0, 0, 0, + 0, 0, 188, 2, 0, 0, + 92, 2, 0, 0, 3, 0, + 0, 0, 196, 2, 0, 0, + 0, 0, 0, 0, 232, 2, + 0, 0, 92, 2, 0, 0, + 2, 0, 0, 0, 240, 2, + 0, 0, 0, 0, 0, 0, + 8, 3, 0, 0, 48, 3, + 0, 0, 1, 0, 0, 0, + 64, 3, 0, 0, 8, 3, + 0, 0, 76, 3, 0, 0, + 212, 3, 0, 0, 3, 0, + 0, 0, 228, 3, 0, 0, + 8, 4, 0, 0, 28, 4, + 0, 0, 92, 2, 0, 0, + 1, 0, 0, 0, 32, 4, + 0, 0, 0, 0, 0, 0, + 44, 4, 0, 0, 92, 2, + 0, 0, 1, 0, 0, 0, + 56, 4, 0, 0, 0, 0, + 0, 0, 68, 4, 0, 0, + 136, 2, 0, 0, 6, 0, + 0, 0, 84, 4, 0, 0, + 0, 0, 0, 0, 156, 4, + 0, 0, 92, 2, 0, 0, + 3, 0, 0, 0, 164, 4, + 0, 0, 0, 0, 0, 0, + 200, 4, 0, 0, 92, 2, + 0, 0, 1, 0, 0, 0, + 212, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 13, 0, 15, 160, 0, 0, + 128, 191, 0, 0, 0, 128, + 23, 183, 209, 56, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 2, 0, + 7, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 4, 0, + 7, 176, 5, 0, 0, 3, + 0, 0, 8, 128, 0, 0, + 255, 176, 0, 0, 255, 176, + 88, 0, 0, 4, 0, 0, + 15, 128, 0, 0, 255, 129, + 13, 0, 0, 160, 13, 0, + 85, 160, 65, 0, 0, 1, + 0, 0, 15, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 4, 0, 228, 176, 4, 0, + 228, 176, 7, 0, 0, 2, + 0, 0, 1, 128, 0, 0, + 0, 128, 4, 0, 0, 4, + 1, 0, 7, 128, 4, 0, + 228, 176, 0, 0, 0, 128, + 9, 0, 228, 160, 36, 0, + 0, 2, 2, 0, 7, 128, + 1, 0, 228, 128, 36, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 176, 8, 0, + 0, 3, 1, 0, 24, 128, + 1, 0, 228, 128, 2, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 18, 128, 7, 0, + 228, 160, 1, 0, 228, 128, 5, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 176, - 0, 0, 255, 176, 88, 0, - 0, 4, 0, 0, 15, 128, - 0, 0, 255, 129, 13, 0, - 0, 160, 13, 0, 85, 160, - 65, 0, 0, 1, 0, 0, - 15, 128, 8, 0, 0, 3, - 0, 0, 1, 128, 4, 0, - 228, 176, 4, 0, 228, 176, - 7, 0, 0, 2, 0, 0, - 1, 128, 0, 0, 0, 128, - 4, 0, 0, 4, 1, 0, - 7, 128, 4, 0, 228, 176, - 0, 0, 0, 128, 9, 0, - 228, 160, 36, 0, 0, 2, - 2, 0, 7, 128, 1, 0, - 228, 128, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 176, 8, 0, 0, 3, - 1, 0, 24, 128, 1, 0, - 228, 128, 2, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 18, 128, 7, 0, 228, 160, - 1, 0, 228, 128, 5, 0, + 14, 128, 0, 0, 85, 128, + 4, 0, 27, 160, 5, 0, 0, 3, 0, 0, 14, 128, - 0, 0, 85, 128, 4, 0, - 27, 160, 5, 0, 0, 3, - 0, 0, 14, 128, 0, 0, - 228, 128, 0, 0, 27, 176, - 1, 0, 0, 2, 2, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 14, 128, 2, 0, 27, 128, - 3, 0, 27, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 2, 0, 4, 128, 13, 0, - 170, 160, 11, 0, 0, 3, - 3, 0, 8, 128, 2, 0, - 0, 160, 2, 0, 170, 128, + 0, 0, 228, 128, 0, 0, + 27, 176, 1, 0, 0, 2, + 2, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 14, 128, 2, 0, + 27, 128, 3, 0, 27, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 2, 0, 4, 128, + 13, 0, 170, 160, 11, 0, + 0, 3, 3, 0, 8, 128, + 2, 0, 0, 160, 2, 0, + 170, 128, 8, 0, 0, 3, + 2, 0, 17, 128, 8, 0, + 228, 160, 1, 0, 228, 128, + 5, 0, 0, 3, 2, 0, + 7, 128, 2, 0, 0, 128, + 5, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 14, 128, + 2, 0, 27, 128, 0, 0, + 27, 176, 0, 0, 228, 128, 8, 0, 0, 3, 2, 0, - 17, 128, 8, 0, 228, 160, + 17, 128, 9, 0, 228, 160, 1, 0, 228, 128, 5, 0, 0, 3, 2, 0, 7, 128, - 2, 0, 0, 128, 5, 0, + 2, 0, 0, 128, 6, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 14, 128, 2, 0, + 0, 0, 30, 128, 2, 0, 27, 128, 0, 0, 27, 176, - 0, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 17, 128, - 9, 0, 228, 160, 1, 0, - 228, 128, 5, 0, 0, 3, - 2, 0, 7, 128, 2, 0, - 0, 128, 6, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 30, 128, 2, 0, 27, 128, - 0, 0, 27, 176, 0, 0, - 228, 128, 32, 0, 0, 3, - 2, 0, 1, 128, 1, 0, - 255, 128, 3, 0, 255, 128, - 5, 0, 0, 3, 1, 0, - 8, 128, 2, 0, 0, 128, - 12, 0, 0, 160, 4, 0, - 0, 4, 2, 0, 7, 128, - 4, 0, 228, 176, 0, 0, - 0, 128, 8, 0, 228, 160, - 36, 0, 0, 2, 3, 0, - 7, 128, 2, 0, 228, 128, - 8, 0, 0, 3, 2, 0, - 17, 128, 1, 0, 228, 128, - 3, 0, 228, 128, 32, 0, - 0, 3, 4, 0, 8, 128, - 2, 0, 0, 128, 3, 0, + 0, 0, 228, 128, 32, 0, + 0, 3, 2, 0, 1, 128, + 1, 0, 255, 128, 3, 0, 255, 128, 5, 0, 0, 3, - 2, 0, 1, 128, 4, 0, - 255, 128, 11, 0, 0, 160, - 4, 0, 0, 4, 3, 0, + 1, 0, 8, 128, 2, 0, + 0, 128, 12, 0, 0, 160, + 4, 0, 0, 4, 2, 0, 7, 128, 4, 0, 228, 176, - 0, 0, 0, 128, 7, 0, + 0, 0, 0, 128, 8, 0, 228, 160, 36, 0, 0, 2, - 4, 0, 7, 128, 3, 0, + 3, 0, 7, 128, 2, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 17, 128, 1, 0, - 228, 128, 4, 0, 228, 128, - 32, 0, 0, 3, 1, 0, - 1, 128, 0, 0, 0, 128, + 2, 0, 17, 128, 1, 0, + 228, 128, 3, 0, 228, 128, + 32, 0, 0, 3, 4, 0, + 8, 128, 2, 0, 0, 128, 3, 0, 255, 128, 5, 0, - 0, 3, 0, 0, 1, 128, - 1, 0, 0, 128, 10, 0, - 0, 160, 1, 0, 0, 2, - 1, 0, 7, 128, 1, 0, - 228, 160, 5, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 27, 128, 5, 0, 27, 160, - 5, 0, 0, 3, 2, 0, - 7, 128, 2, 0, 0, 128, - 2, 0, 27, 128, 5, 0, - 0, 3, 3, 0, 7, 128, + 0, 3, 2, 0, 1, 128, + 4, 0, 255, 128, 11, 0, + 0, 160, 4, 0, 0, 4, + 3, 0, 7, 128, 4, 0, + 228, 176, 0, 0, 0, 128, + 7, 0, 228, 160, 36, 0, + 0, 2, 4, 0, 7, 128, + 3, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 17, 128, 1, 0, 228, 128, 4, 0, - 228, 160, 4, 0, 0, 4, - 2, 0, 7, 128, 3, 0, - 228, 128, 0, 0, 0, 128, - 2, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 1, 0, 228, 128, 6, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 7, 128, 1, 0, - 228, 128, 1, 0, 255, 128, - 2, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 27, 128, 1, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 176, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 84, 6, - 0, 0, 64, 0, 0, 0, - 149, 1, 0, 0, 89, 0, + 228, 128, 32, 0, 0, 3, + 1, 0, 1, 128, 0, 0, + 0, 128, 3, 0, 255, 128, + 5, 0, 0, 3, 0, 0, + 1, 128, 1, 0, 0, 128, + 10, 0, 0, 160, 1, 0, + 0, 2, 1, 0, 7, 128, + 1, 0, 228, 160, 5, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 27, 128, 5, 0, + 27, 160, 5, 0, 0, 3, + 2, 0, 7, 128, 2, 0, + 0, 128, 2, 0, 27, 128, + 5, 0, 0, 3, 3, 0, + 7, 128, 1, 0, 228, 128, + 4, 0, 228, 160, 4, 0, + 0, 4, 2, 0, 7, 128, + 3, 0, 228, 128, 0, 0, + 0, 128, 2, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 1, 0, 228, 128, + 6, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 1, 0, 228, 128, 1, 0, + 255, 128, 2, 0, 228, 128, + 2, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 27, 128, + 1, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 84, 6, 0, 0, 64, 0, + 0, 0, 149, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 89, 0, 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 1, 0, - 0, 0, 16, 0, 0, 0, - 98, 16, 0, 3, 242, 16, + 1, 0, 0, 0, 16, 0, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 3, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 5, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 4, 0, 0, 0, 24, 0, + 0, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 58, 16, 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 3, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 5, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 24, 0, 0, 7, + 1, 64, 0, 0, 0, 0, + 0, 0, 13, 0, 4, 3, + 10, 0, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 7, 18, 0, 16, 0, 0, 0, - 0, 0, 58, 16, 16, 0, - 1, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 13, 0, 4, 3, 10, 0, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 68, 0, - 0, 5, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 0, + 3, 0, 0, 0, 70, 18, + 16, 0, 3, 0, 0, 0, + 68, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, + 70, 18, 16, 0, 5, 0, 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 18, + 5, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 16, 32, 0, 8, 18, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 9, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 1, 0, + 0, 0, 6, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 2, 0, 0, 0, 70, 18, 16, 0, 5, 0, 0, 0, - 70, 18, 16, 0, 5, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 9, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 68, 0, 0, 5, 130, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 16, 32, 0, 7, 130, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 52, 0, + 0, 8, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 1, 64, + 0, 0, 23, 183, 209, 56, + 47, 0, 0, 5, 130, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 130, 0, 16, 0, 1, 0, + 0, 0, 58, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 25, 0, 0, 5, 130, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 8, + 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 16, 32, + 1, 0, 0, 0, 10, 128, + 32, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 56, 0, + 0, 9, 226, 0, 16, 0, + 2, 0, 0, 0, 6, 137, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 6, 137, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 16, 32, 0, 8, 18, 0, 16, 0, - 1, 0, 0, 0, 70, 130, + 3, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 9, 0, 0, 0, 70, 2, + 10, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 1, 0, + 16, 0, 3, 0, 0, 0, + 6, 0, 16, 0, 3, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 7, + 1, 0, 0, 0, 2, 0, + 0, 0, 50, 0, 0, 9, 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 18, + 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 2, 0, + 114, 0, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, 5, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 16, 0, 0, 7, 130, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 1, 0, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 32, - 0, 7, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 52, 0, 0, 8, - 18, 0, 16, 0, 2, 0, - 0, 0, 10, 128, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 23, 183, 209, 56, 47, 0, - 0, 5, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 130, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 25, 0, + 3, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 130, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 10, 128, 32, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 56, 0, 0, 9, - 226, 0, 16, 0, 2, 0, - 0, 0, 6, 137, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 6, 137, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 16, 32, 0, 8, - 18, 0, 16, 0, 3, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 10, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 6, 0, + 3, 0, 0, 0, 58, 0, 16, 0, 3, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 50, 0, 0, 9, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 114, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 3, 0, 0, 0, - 70, 18, 16, 0, 5, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, + 246, 15, 16, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 16, 32, + 0, 7, 18, 0, 16, 0, 3, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 3, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 3, 0, - 0, 0, 16, 32, 0, 7, + 0, 0, 47, 0, 0, 5, 18, 0, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 47, 0, 0, 5, 18, 0, - 16, 0, 3, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 3, 0, 0, 0, 56, 0, + 0, 7, 18, 0, 16, 0, + 3, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, 10, 0, 16, 0, 3, 0, - 0, 0, 56, 0, 0, 7, + 0, 0, 25, 0, 0, 5, 18, 0, 16, 0, 3, 0, 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 10, 0, + 3, 0, 0, 0, 56, 0, + 0, 8, 18, 0, 16, 0, + 3, 0, 0, 0, 10, 0, 16, 0, 3, 0, 0, 0, - 25, 0, 0, 5, 18, 0, + 10, 128, 32, 0, 1, 0, + 0, 0, 14, 0, 0, 0, + 56, 0, 0, 9, 226, 0, 16, 0, 3, 0, 0, 0, - 10, 0, 16, 0, 3, 0, - 0, 0, 56, 0, 0, 8, - 18, 0, 16, 0, 3, 0, - 0, 0, 10, 0, 16, 0, - 3, 0, 0, 0, 10, 128, - 32, 0, 1, 0, 0, 0, - 14, 0, 0, 0, 56, 0, + 6, 137, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 6, 137, 32, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 3, 0, 0, 0, + 6, 0, 16, 0, 3, 0, + 0, 0, 150, 7, 16, 0, + 3, 0, 0, 0, 50, 0, 0, 9, 226, 0, 16, 0, - 3, 0, 0, 0, 6, 137, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 6, 137, + 2, 0, 0, 0, 86, 14, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 1, 0, + 0, 0, 6, 9, 16, 0, + 3, 0, 0, 0, 16, 32, + 0, 8, 130, 0, 16, 0, + 1, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 3, 0, 0, 0, 6, 0, + 11, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 114, 0, 16, 0, 3, 0, 0, 0, - 150, 7, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 9, - 226, 0, 16, 0, 2, 0, - 0, 0, 86, 14, 16, 0, - 2, 0, 0, 0, 246, 15, - 16, 0, 1, 0, 0, 0, - 6, 9, 16, 0, 3, 0, - 0, 0, 16, 32, 0, 8, - 130, 0, 16, 0, 1, 0, + 246, 15, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 11, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 50, 32, 0, 9, + 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, + 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 50, 32, 0, 9, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 3, 0, 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 3, 0, 0, 0, - 70, 18, 16, 0, 5, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, + 5, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 3, 0, - 0, 0, 16, 32, 0, 7, - 18, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, + 3, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 3, 0, 0, 0, - 47, 0, 0, 5, 18, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 16, 32, + 0, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, + 70, 2, 16, 0, 3, 0, + 0, 0, 47, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, - 16, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, + 10, 0, 16, 0, 2, 0, + 0, 0, 25, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 56, 0, - 0, 9, 226, 0, 16, 0, - 0, 0, 0, 0, 6, 137, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 6, 137, - 32, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 150, 7, - 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 150, 7, 16, 0, - 2, 0, 0, 0, 0, 0, - 0, 7, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 56, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 16, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, + 10, 128, 32, 0, 1, 0, 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, + 56, 0, 0, 9, 226, 0, + 16, 0, 0, 0, 0, 0, + 6, 137, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 6, 137, 32, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 218, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 3, 0, + 50, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 150, 7, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 150, 7, + 16, 0, 2, 0, 0, 0, + 0, 0, 0, 7, 114, 32, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 16, + 16, 0, 1, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 0, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 0, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 0, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 0, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTx.inc index 9a85634b6e98ec80912027974b639d7b169e37b9..170dfd669e3e135de0dd6914e25b54a9e9923468 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTx.inc @@ -47,53 +47,83 @@ // ps_2_0 def c13, 9.99999975e-005, 0, 0, 0 - dcl t0 - dcl t1.xy - dcl t2.xyz - dcl t4.xyz + dcl t0 // pixel<4,5,6,7> + dcl t1.xy // pixel<8,9> + dcl t2.xyz // pixel<10,11,12> + dcl t4.xyz // pixel<16,17,18> dcl_2d s0 + +#line 180 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLPhong.hlsl" texld r0, t1, s0 - mov r1.xyz, c1 + +#line 104 + mov r1.xyz, c1 // MaterialVars::MaterialSpecular<0,1,2> mul r2.xyz, r1, c4 mul r3.xyz, r1, c5 + +#line 168 dp3 r1.w, t4, t4 rsq r1.w, r1.w + +#line 101 mad r4.xyz, t4, r1.w, c8 - nrm r5.xyz, r4 - nrm r4.xyz, t2 - dp3_sat r2.w, r4, r5 - mov r3.w, c2.x + nrm r5.xyz, r4 // ::vHalf<0,1,2> + +#line 167 + nrm r4.xyz, t2 // ::worldNormal<0,1,2> + +#line 102 + dp3_sat r2.w, r4, r5 // ::specularAmount<0> + mov r3.w, c2.x // MaterialVars::MaterialSpecularPower<0> max r4.w, r3.w, c13.x pow r3.w, r2.w, r4.w - mul r2.w, r3.w, c11.x - mul r3.xyz, r2.w, r3 + mul r2.w, r3.w, c11.x // ::specularAmount<0> + mul r3.xyz, r2.w, r3 // ::specular<0,1,2> + +#line 101 mad r5.xyz, t4, r1.w, c7 mad r6.xyz, t4, r1.w, c9 - nrm r7.xyz, r6 - dp3_sat r1.w, r4, r7 + nrm r7.xyz, r6 // ::vHalf<0,1,2> + dp3_sat r1.w, r4, r7 // ::specularAmount<0> pow r2.w, r1.w, r4.w - mul r1.w, r2.w, c12.x - nrm r6.xyz, r5 - dp3_sat r2.w, r4, r6 + mul r1.w, r2.w, c12.x // ::specularAmount<0> + nrm r6.xyz, r5 // ::vHalf<0,1,2> + dp3_sat r2.w, r4, r6 // ::specularAmount<0> pow r3.w, r2.w, r4.w - mul r2.w, r3.w, c10.x - mad r2.xyz, r2, r2.w, r3 + mul r2.w, r3.w, c10.x // ::specularAmount<0> + +#line 176 + mad r2.xyz, r2, r2.w, r3 // ::local4<0,1,2> + +#line 104 mul r1.xyz, r1, c6 - mad r1.xyz, r1, r1.w, r2 - dp3_sat r1.w, c7, r4 + +#line 176 + mad r1.xyz, r1, r1.w, r2 // ::local4<0,1,2> + +#line 82 + dp3_sat r1.w, c7, r4 // ::diffuseAmount<0> mul r2.xyz, r1.w, c4 - mul r2.xyz, r2, t0 - mov r3.xyz, c0 - mad r2.xyz, r3, c3, r2 - dp3_sat r1.w, c8, r4 - dp3_sat r2.w, c9, r4 + mul r2.xyz, r2, t0 // ::diffuse<0,1,2> + +#line 175 + mov r3.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r2.xyz, r3, c3, r2 // ::local1<0,1,2> + +#line 82 + dp3_sat r1.w, c8, r4 // ::diffuseAmount<0> + dp3_sat r2.w, c9, r4 // ::diffuseAmount<0> mul r3.xyz, r2.w, c6 mul r4.xyz, r1.w, c5 - mad r2.xyz, r4, t0, r2 - mad_sat r2.xyz, r3, t0, r2 - mad r1.xyz, r2, r0, r1 - mul r1.w, r0.w, t0.w - mov oC0, r1 + +#line 175 + mad r2.xyz, r4, t0, r2 // ::local1<0,1,2> + mad_sat r2.xyz, r3, t0, r2 // ::local1<0,1,2> + +#line 180 + mad r1.xyz, r2, r0, r1 // ::local5<0,1,2> + mul r1.w, r0.w, t0.w // ::local6<0> + mov oC0, r1 // ::mainTx<0,1,2,3> // approximately 56 instruction slots used (1 texture, 55 arithmetic) ps_4_0 @@ -165,17 +195,17 @@ ret const BYTE DGSLPhong_mainTx[] = { - 68, 88, 66, 67, 122, 182, - 73, 74, 63, 27, 235, 112, - 1, 112, 173, 226, 75, 153, - 17, 221, 1, 0, 0, 0, - 84, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 245, 121, + 96, 181, 252, 90, 214, 151, + 2, 228, 95, 163, 213, 199, + 33, 130, 1, 0, 0, 0, + 212, 17, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 164, 3, 0, 0, 52, 10, - 0, 0, 32, 11, 0, 0, - 65, 111, 110, 57, 108, 3, - 0, 0, 108, 3, 0, 0, - 0, 2, 255, 255, 252, 2, + 36, 10, 0, 0, 180, 16, + 0, 0, 160, 17, 0, 0, + 65, 111, 110, 57, 236, 9, + 0, 0, 236, 9, 0, 0, + 0, 2, 255, 255, 124, 9, 0, 0, 112, 0, 0, 0, 6, 0, 40, 0, 0, 0, 112, 0, 0, 0, 112, 0, @@ -193,460 +223,737 @@ const BYTE DGSLPhong_mainTx[] = 7, 0, 0, 0, 0, 0, 1, 0, 13, 0, 3, 0, 10, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 81, 0, - 0, 5, 13, 0, 15, 160, - 23, 183, 209, 56, 0, 0, + 0, 2, 255, 255, 254, 255, + 159, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 80, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 4, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 1, 0, 0, 2, - 1, 0, 7, 128, 1, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 48, 0, 0, 0, + 120, 0, 0, 0, 15, 0, + 0, 0, 36, 5, 0, 0, + 100, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 80, 104, 111, 110, + 103, 46, 104, 108, 115, 108, + 0, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 132, 6, + 0, 0, 0, 0, 255, 255, + 156, 6, 0, 0, 0, 0, + 255, 255, 168, 6, 0, 0, + 0, 0, 255, 255, 180, 6, + 0, 0, 0, 0, 255, 255, + 192, 6, 0, 0, 0, 0, + 255, 255, 204, 6, 0, 0, + 180, 0, 0, 0, 216, 6, + 0, 0, 104, 0, 0, 0, + 232, 6, 0, 0, 104, 0, + 0, 0, 244, 6, 0, 0, + 104, 0, 0, 0, 4, 7, + 0, 0, 168, 0, 0, 0, + 20, 7, 0, 0, 168, 0, + 0, 0, 36, 7, 0, 0, + 101, 0, 0, 0, 48, 7, + 0, 0, 101, 0, 0, 0, + 68, 7, 0, 0, 167, 0, + 0, 0, 80, 7, 0, 0, + 102, 0, 0, 0, 92, 7, + 0, 0, 103, 0, 0, 0, + 108, 7, 0, 0, 103, 0, + 0, 0, 120, 7, 0, 0, + 103, 0, 0, 0, 136, 7, + 0, 0, 103, 0, 0, 0, + 152, 7, 0, 0, 104, 0, + 0, 0, 168, 7, 0, 0, + 101, 0, 0, 0, 184, 7, + 0, 0, 101, 0, 0, 0, + 204, 7, 0, 0, 101, 0, + 0, 0, 224, 7, 0, 0, + 102, 0, 0, 0, 236, 7, + 0, 0, 103, 0, 0, 0, + 252, 7, 0, 0, 103, 0, + 0, 0, 12, 8, 0, 0, + 101, 0, 0, 0, 28, 8, + 0, 0, 102, 0, 0, 0, + 40, 8, 0, 0, 103, 0, + 0, 0, 56, 8, 0, 0, + 103, 0, 0, 0, 72, 8, + 0, 0, 176, 0, 0, 0, + 88, 8, 0, 0, 104, 0, + 0, 0, 108, 8, 0, 0, + 176, 0, 0, 0, 124, 8, + 0, 0, 82, 0, 0, 0, + 144, 8, 0, 0, 83, 0, + 0, 0, 160, 8, 0, 0, + 83, 0, 0, 0, 176, 8, + 0, 0, 175, 0, 0, 0, + 192, 8, 0, 0, 175, 0, + 0, 0, 204, 8, 0, 0, + 82, 0, 0, 0, 224, 8, + 0, 0, 82, 0, 0, 0, + 240, 8, 0, 0, 83, 0, + 0, 0, 0, 9, 0, 0, + 83, 0, 0, 0, 16, 9, + 0, 0, 175, 0, 0, 0, + 32, 9, 0, 0, 175, 0, + 0, 0, 52, 9, 0, 0, + 180, 0, 0, 0, 72, 9, + 0, 0, 181, 0, 0, 0, + 92, 9, 0, 0, 180, 0, + 0, 0, 108, 9, 0, 0, + 77, 97, 116, 101, 114, 105, + 97, 108, 86, 97, 114, 115, + 0, 77, 97, 116, 101, 114, + 105, 97, 108, 65, 109, 98, + 105, 101, 110, 116, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 77, 97, 116, 101, 114, 105, + 97, 108, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 77, 97, 116, 101, + 114, 105, 97, 108, 83, 112, + 101, 99, 117, 108, 97, 114, + 80, 111, 119, 101, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 100, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 36, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 100, 105, 102, 102, 117, 115, + 101, 65, 109, 111, 117, 110, + 116, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 39, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 40, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 108, 111, 99, 97, + 108, 49, 0, 171, 38, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 43, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 44, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 108, 111, + 99, 97, 108, 52, 0, 171, + 31, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 33, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 108, 111, 99, 97, 108, 53, + 0, 171, 45, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 108, 111, 99, 97, + 108, 54, 0, 171, 46, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 109, 97, + 105, 110, 84, 120, 0, 102, + 114, 97, 103, 109, 101, 110, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 107, 3, 0, 0, 116, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 132, 3, 0, 0, + 47, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 120, 101, 108, 0, + 112, 111, 115, 0, 117, 118, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 0, + 119, 111, 114, 108, 100, 80, + 111, 115, 0, 116, 111, 69, + 121, 101, 0, 116, 97, 110, + 103, 101, 110, 116, 0, 110, + 111, 114, 109, 97, 108, 0, + 174, 3, 0, 0, 116, 3, + 0, 0, 136, 2, 0, 0, + 116, 3, 0, 0, 178, 3, + 0, 0, 184, 3, 0, 0, + 200, 3, 0, 0, 144, 2, + 0, 0, 210, 3, 0, 0, + 144, 2, 0, 0, 219, 3, + 0, 0, 144, 2, 0, 0, + 225, 3, 0, 0, 116, 3, + 0, 0, 233, 3, 0, 0, + 144, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 240, 3, + 0, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 4, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 20, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 65, 109, + 111, 117, 110, 116, 0, 171, + 15, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 19, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 24, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 26, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 28, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 30, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 118, 72, 97, 108, 102, 0, + 171, 171, 13, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 23, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 27, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 14, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 248, 1, 0, 0, + 5, 2, 0, 0, 24, 2, + 0, 0, 1, 0, 0, 0, + 40, 2, 0, 0, 248, 1, + 0, 0, 52, 2, 0, 0, + 24, 2, 0, 0, 1, 0, + 0, 0, 72, 2, 0, 0, + 248, 1, 0, 0, 84, 2, + 0, 0, 108, 2, 0, 0, + 1, 0, 0, 0, 124, 2, + 0, 0, 0, 0, 0, 0, + 136, 2, 0, 0, 144, 2, + 0, 0, 1, 0, 0, 0, + 160, 2, 0, 0, 0, 0, + 0, 0, 172, 2, 0, 0, + 188, 2, 0, 0, 3, 0, + 0, 0, 204, 2, 0, 0, + 0, 0, 0, 0, 240, 2, + 0, 0, 144, 2, 0, 0, + 3, 0, 0, 0, 248, 2, + 0, 0, 0, 0, 0, 0, + 28, 3, 0, 0, 144, 2, + 0, 0, 2, 0, 0, 0, + 36, 3, 0, 0, 0, 0, + 0, 0, 60, 3, 0, 0, + 144, 2, 0, 0, 1, 0, + 0, 0, 68, 3, 0, 0, + 0, 0, 0, 0, 80, 3, + 0, 0, 188, 2, 0, 0, + 1, 0, 0, 0, 88, 3, + 0, 0, 0, 0, 0, 0, + 100, 3, 0, 0, 140, 3, + 0, 0, 1, 0, 0, 0, + 156, 3, 0, 0, 100, 3, + 0, 0, 168, 3, 0, 0, + 48, 4, 0, 0, 4, 0, + 0, 0, 64, 4, 0, 0, + 0, 0, 0, 0, 112, 4, + 0, 0, 144, 2, 0, 0, + 1, 0, 0, 0, 124, 4, + 0, 0, 0, 0, 0, 0, + 136, 4, 0, 0, 188, 2, + 0, 0, 6, 0, 0, 0, + 152, 4, 0, 0, 0, 0, + 0, 0, 224, 4, 0, 0, + 144, 2, 0, 0, 3, 0, + 0, 0, 232, 4, 0, 0, + 0, 0, 0, 0, 12, 5, + 0, 0, 144, 2, 0, 0, + 1, 0, 0, 0, 24, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 13, 0, + 15, 160, 23, 183, 209, 56, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 4, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 176, + 0, 8, 228, 160, 1, 0, + 0, 2, 1, 0, 7, 128, + 1, 0, 228, 160, 5, 0, + 0, 3, 2, 0, 7, 128, + 1, 0, 228, 128, 4, 0, 228, 160, 5, 0, 0, 3, - 2, 0, 7, 128, 1, 0, - 228, 128, 4, 0, 228, 160, - 5, 0, 0, 3, 3, 0, - 7, 128, 1, 0, 228, 128, - 5, 0, 228, 160, 8, 0, - 0, 3, 1, 0, 8, 128, - 4, 0, 228, 176, 4, 0, - 228, 176, 7, 0, 0, 2, - 1, 0, 8, 128, 1, 0, - 255, 128, 4, 0, 0, 4, - 4, 0, 7, 128, 4, 0, - 228, 176, 1, 0, 255, 128, - 8, 0, 228, 160, 36, 0, - 0, 2, 5, 0, 7, 128, - 4, 0, 228, 128, 36, 0, - 0, 2, 4, 0, 7, 128, - 2, 0, 228, 176, 8, 0, - 0, 3, 2, 0, 24, 128, - 4, 0, 228, 128, 5, 0, - 228, 128, 1, 0, 0, 2, - 3, 0, 8, 128, 2, 0, - 0, 160, 11, 0, 0, 3, - 4, 0, 8, 128, 3, 0, - 255, 128, 13, 0, 0, 160, - 32, 0, 0, 3, 3, 0, - 8, 128, 2, 0, 255, 128, - 4, 0, 255, 128, 5, 0, - 0, 3, 2, 0, 8, 128, - 3, 0, 255, 128, 11, 0, - 0, 160, 5, 0, 0, 3, - 3, 0, 7, 128, 2, 0, - 255, 128, 3, 0, 228, 128, - 4, 0, 0, 4, 5, 0, - 7, 128, 4, 0, 228, 176, - 1, 0, 255, 128, 7, 0, - 228, 160, 4, 0, 0, 4, - 6, 0, 7, 128, 4, 0, - 228, 176, 1, 0, 255, 128, - 9, 0, 228, 160, 36, 0, - 0, 2, 7, 0, 7, 128, - 6, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 24, 128, - 4, 0, 228, 128, 7, 0, - 228, 128, 32, 0, 0, 3, - 2, 0, 8, 128, 1, 0, - 255, 128, 4, 0, 255, 128, - 5, 0, 0, 3, 1, 0, - 8, 128, 2, 0, 255, 128, - 12, 0, 0, 160, 36, 0, - 0, 2, 6, 0, 7, 128, - 5, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 24, 128, - 4, 0, 228, 128, 6, 0, - 228, 128, 32, 0, 0, 3, + 3, 0, 7, 128, 1, 0, + 228, 128, 5, 0, 228, 160, + 8, 0, 0, 3, 1, 0, + 8, 128, 4, 0, 228, 176, + 4, 0, 228, 176, 7, 0, + 0, 2, 1, 0, 8, 128, + 1, 0, 255, 128, 4, 0, + 0, 4, 4, 0, 7, 128, + 4, 0, 228, 176, 1, 0, + 255, 128, 8, 0, 228, 160, + 36, 0, 0, 2, 5, 0, + 7, 128, 4, 0, 228, 128, + 36, 0, 0, 2, 4, 0, + 7, 128, 2, 0, 228, 176, + 8, 0, 0, 3, 2, 0, + 24, 128, 4, 0, 228, 128, + 5, 0, 228, 128, 1, 0, + 0, 2, 3, 0, 8, 128, + 2, 0, 0, 160, 11, 0, + 0, 3, 4, 0, 8, 128, + 3, 0, 255, 128, 13, 0, + 0, 160, 32, 0, 0, 3, 3, 0, 8, 128, 2, 0, 255, 128, 4, 0, 255, 128, 5, 0, 0, 3, 2, 0, 8, 128, 3, 0, 255, 128, - 10, 0, 0, 160, 4, 0, - 0, 4, 2, 0, 7, 128, - 2, 0, 228, 128, 2, 0, - 255, 128, 3, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 7, 128, 1, 0, 228, 128, - 6, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 7, 128, - 1, 0, 228, 128, 1, 0, - 255, 128, 2, 0, 228, 128, + 11, 0, 0, 160, 5, 0, + 0, 3, 3, 0, 7, 128, + 2, 0, 255, 128, 3, 0, + 228, 128, 4, 0, 0, 4, + 5, 0, 7, 128, 4, 0, + 228, 176, 1, 0, 255, 128, + 7, 0, 228, 160, 4, 0, + 0, 4, 6, 0, 7, 128, + 4, 0, 228, 176, 1, 0, + 255, 128, 9, 0, 228, 160, + 36, 0, 0, 2, 7, 0, + 7, 128, 6, 0, 228, 128, 8, 0, 0, 3, 1, 0, - 24, 128, 7, 0, 228, 160, - 4, 0, 228, 128, 5, 0, - 0, 3, 2, 0, 7, 128, + 24, 128, 4, 0, 228, 128, + 7, 0, 228, 128, 32, 0, + 0, 3, 2, 0, 8, 128, 1, 0, 255, 128, 4, 0, - 228, 160, 5, 0, 0, 3, - 2, 0, 7, 128, 2, 0, - 228, 128, 0, 0, 228, 176, - 1, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 160, + 255, 128, 5, 0, 0, 3, + 1, 0, 8, 128, 2, 0, + 255, 128, 12, 0, 0, 160, + 36, 0, 0, 2, 6, 0, + 7, 128, 5, 0, 228, 128, + 8, 0, 0, 3, 2, 0, + 24, 128, 4, 0, 228, 128, + 6, 0, 228, 128, 32, 0, + 0, 3, 3, 0, 8, 128, + 2, 0, 255, 128, 4, 0, + 255, 128, 5, 0, 0, 3, + 2, 0, 8, 128, 3, 0, + 255, 128, 10, 0, 0, 160, 4, 0, 0, 4, 2, 0, - 7, 128, 3, 0, 228, 128, - 3, 0, 228, 160, 2, 0, + 7, 128, 2, 0, 228, 128, + 2, 0, 255, 128, 3, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 1, 0, + 228, 128, 6, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 1, 0, 228, 128, + 1, 0, 255, 128, 2, 0, 228, 128, 8, 0, 0, 3, - 1, 0, 24, 128, 8, 0, + 1, 0, 24, 128, 7, 0, 228, 160, 4, 0, 228, 128, - 8, 0, 0, 3, 2, 0, - 24, 128, 9, 0, 228, 160, - 4, 0, 228, 128, 5, 0, - 0, 3, 3, 0, 7, 128, - 2, 0, 255, 128, 6, 0, - 228, 160, 5, 0, 0, 3, - 4, 0, 7, 128, 1, 0, - 255, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 2, 0, - 7, 128, 4, 0, 228, 128, - 0, 0, 228, 176, 2, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 23, 128, 3, 0, + 5, 0, 0, 3, 2, 0, + 7, 128, 1, 0, 255, 128, + 4, 0, 228, 160, 5, 0, + 0, 3, 2, 0, 7, 128, + 2, 0, 228, 128, 0, 0, + 228, 176, 1, 0, 0, 2, + 3, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 2, 0, 7, 128, 3, 0, + 228, 128, 3, 0, 228, 160, + 2, 0, 228, 128, 8, 0, + 0, 3, 1, 0, 24, 128, + 8, 0, 228, 160, 4, 0, + 228, 128, 8, 0, 0, 3, + 2, 0, 24, 128, 9, 0, + 228, 160, 4, 0, 228, 128, + 5, 0, 0, 3, 3, 0, + 7, 128, 2, 0, 255, 128, + 6, 0, 228, 160, 5, 0, + 0, 3, 4, 0, 7, 128, + 1, 0, 255, 128, 5, 0, + 228, 160, 4, 0, 0, 4, + 2, 0, 7, 128, 4, 0, 228, 128, 0, 0, 228, 176, 2, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 7, 128, - 2, 0, 228, 128, 0, 0, - 228, 128, 1, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 0, 0, 255, 176, 1, 0, - 0, 2, 0, 8, 15, 128, - 1, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 136, 6, 0, 0, 64, 0, - 0, 0, 162, 1, 0, 0, + 0, 4, 2, 0, 23, 128, + 3, 0, 228, 128, 0, 0, + 228, 176, 2, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 7, 128, 2, 0, 228, 128, + 0, 0, 228, 128, 1, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 8, 128, 0, 0, + 255, 128, 0, 0, 255, 176, + 1, 0, 0, 2, 0, 8, + 15, 128, 1, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 136, 6, 0, 0, + 64, 0, 0, 0, 162, 1, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 89, 0, 0, 4, 70, 142, + 32, 0, 1, 0, 0, 0, + 16, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 3, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 5, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 5, 0, 0, 0, 56, 0, + 0, 9, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 1, 0, 0, 0, 16, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 3, 0, 0, 0, - 98, 16, 0, 3, 114, 16, + 2, 0, 0, 0, 70, 130, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 9, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 70, 130, + 32, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 18, 16, 0, 5, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 5, 0, - 0, 0, 56, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 9, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 16, 0, 0, 7, + 70, 18, 16, 0, 5, 0, + 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 5, 0, 0, 0, 70, 18, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 2, 0, 0, 0, 70, 18, 16, 0, 5, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 10, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, 68, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 10, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, 2, 0, - 0, 0, 70, 18, 16, 0, - 5, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 10, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 68, 0, + 70, 18, 16, 0, 3, 0, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, 56, 0, 0, 7, 114, 0, - 16, 0, 2, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 246, 15, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 16, 32, 0, 7, 130, 0, 16, 0, - 1, 0, 0, 0, 70, 18, + 1, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 70, 18, 16, 0, 3, 0, - 0, 0, 68, 0, 0, 5, + 70, 2, 16, 0, 2, 0, + 0, 0, 47, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 3, 0, - 0, 0, 16, 32, 0, 7, - 130, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 47, 0, 0, 5, 130, 0, + 1, 0, 0, 0, 52, 0, + 0, 8, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 1, 64, + 0, 0, 23, 183, 209, 56, + 56, 0, 0, 7, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, - 0, 0, 52, 0, 0, 8, - 18, 0, 16, 0, 2, 0, - 0, 0, 10, 128, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 23, 183, 209, 56, 56, 0, - 0, 7, 130, 0, 16, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 25, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, + 56, 0, 0, 8, 130, 0, 16, 0, 1, 0, 0, 0, - 10, 128, 32, 0, 1, 0, - 0, 0, 14, 0, 0, 0, - 56, 0, 0, 7, 114, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 10, 128, 32, 0, + 1, 0, 0, 0, 14, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 226, 0, 16, 0, - 2, 0, 0, 0, 6, 25, + 50, 0, 0, 10, 226, 0, + 16, 0, 2, 0, 0, 0, + 6, 25, 16, 0, 5, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 6, 137, + 32, 0, 1, 0, 0, 0, + 9, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 4, 0, 0, 0, 70, 18, 16, 0, 5, 0, 0, 0, 246, 15, 16, 0, 0, 0, - 0, 0, 6, 137, 32, 0, - 1, 0, 0, 0, 9, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 4, 0, - 0, 0, 70, 18, 16, 0, - 5, 0, 0, 0, 246, 15, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 11, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 150, 7, + 16, 0, 2, 0, 0, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 11, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 226, 0, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 86, 14, + 16, 0, 2, 0, 0, 0, + 16, 32, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 150, 7, 16, 0, 2, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 150, 7, 16, 0, - 2, 0, 0, 0, 68, 0, + 2, 0, 0, 0, 47, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 226, 0, - 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 86, 14, 16, 0, - 2, 0, 0, 0, 16, 32, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 47, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, + 56, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 25, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 130, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 10, 128, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 50, 0, 0, 9, 114, 0, + 56, 0, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 9, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 10, 128, 32, 0, + 1, 0, 0, 0, 13, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 4, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 9, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 68, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 68, 0, 0, 5, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 226, 0, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 6, 9, + 16, 0, 4, 0, 0, 0, + 16, 32, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 47, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 226, 0, - 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 6, 9, 16, 0, - 4, 0, 0, 0, 16, 32, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 47, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, + 56, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 25, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 130, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 10, 128, 32, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 50, 0, 0, 9, 114, 0, + 56, 0, 0, 8, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, + 58, 0, 16, 0, 0, 0, + 0, 0, 10, 128, 32, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 16, 32, 0, 8, 130, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 32, 0, 8, + 130, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 9, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 32, - 0, 8, 130, 0, 16, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 32, 0, 8, 130, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, + 16, 32, 0, 8, 130, 0, + 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 1, 0, - 0, 0, 11, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 70, 2, 16, 0, 3, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 1, 0, 0, 0, + 0, 0, 16, 32, 0, 8, + 130, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 11, 0, + 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 50, 0, 0, 9, 114, 0, + 2, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 50, 32, 0, 9, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, + 70, 130, 32, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 3, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 9, 114, 32, - 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, + 0, 0, 50, 32, 0, 9, + 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 130, 32, + 2, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 2, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 58, 16, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 218, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 3, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 9, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 2, 0, 0, 0, 58, 16, + 16, 0, 1, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 228, 0, 0, 0, + 8, 0, 0, 0, 8, 0, + 0, 0, 200, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 7, 0, 0, - 218, 0, 0, 0, 4, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 7, 0, + 0, 0, 218, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 5, 0, 0, 0, 7, 7, + 0, 0, 218, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 0, 0, 15, 0, + 0, 0, 218, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 7, 0, + 0, 0, 83, 86, 95, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 0, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTxTk.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTxTk.inc index 1c88a023fc034121e324f52be5afe7b7360ef884..7cc9830140ae56914f73ad159a3afec882e878de 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTxTk.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLPhong_mainTxTk.inc @@ -47,56 +47,94 @@ // ps_2_0 def c13, -1, -0, 9.99999975e-005, 0 - dcl t0 - dcl t1.xy - dcl t2.xyz - dcl t4.xyz + dcl t0 // pixel<4,5,6,7> + dcl t1.xy // pixel<8,9> + dcl t2.xyz // pixel<10,11,12> + dcl t4.xyz // pixel<16,17,18> dcl_2d s0 + +#line 204 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLPhong.hlsl" texld r0, t1, s0 - mul r1.w, r0.w, t0.w + mul r1.w, r0.w, t0.w // ::local6<0> + +#line 208 mul r0.w, r1.w, r1.w cmp r2, -r0.w, c13.x, c13.y texkill r2 + +#line 192 dp3 r0.w, t4, t4 rsq r0.w, r0.w + +#line 101 mad r2.xyz, t4, r0.w, c9 - nrm r3.xyz, r2 - nrm r2.xyz, t2 - dp3_sat r2.w, r2, r3 - dp3_sat r3.x, c7, r2 + nrm r3.xyz, r2 // ::vHalf<0,1,2> + +#line 191 + nrm r2.xyz, t2 // ::worldNormal<0,1,2> + +#line 102 + dp3_sat r2.w, r2, r3 // ::specularAmount<0> + +#line 82 + dp3_sat r3.x, c7, r2 // ::diffuseAmount<0> mul r3.xyz, r3.x, c4 - mul r3.xyz, r3, t0 - mov r4.xyz, c0 - mad r3.xyz, r4, c3, r3 + mul r3.xyz, r3, t0 // ::diffuse<0,1,2> + +#line 199 + mov r4.xyz, c0 // MaterialVars::MaterialAmbient<0,1,2> + mad r3.xyz, r4, c3, r3 // ::local1<0,1,2> + +#line 103 mov r3.w, c13.z max r4.x, c2.x, r3.w - dp3_sat r3.w, c8, r2 + +#line 82 + dp3_sat r3.w, c8, r2 // ::diffuseAmount<0> mul r4.yzw, r3.w, c5.wzyx - mad r3.xyz, r4.wzyx, t0, r3 - dp3_sat r3.w, c9, r2 + +#line 199 + mad r3.xyz, r4.wzyx, t0, r3 // ::local1<0,1,2> + +#line 82 + dp3_sat r3.w, c9, r2 // ::diffuseAmount<0> mul r4.yzw, r3.w, c6.wzyx - mad_sat r3.xyz, r4.wzyx, t0, r3 + +#line 199 + mad_sat r3.xyz, r4.wzyx, t0, r3 // ::local1<0,1,2> + +#line 103 pow r3.w, r2.w, r4.x - mul r2.w, r3.w, c12.x + mul r2.w, r3.w, c12.x // ::specularAmount<0> mad r5.xyz, t4, r0.w, c8 - nrm r6.xyz, r5 - dp3_sat r3.w, r2, r6 + nrm r6.xyz, r5 // ::vHalf<0,1,2> + dp3_sat r3.w, r2, r6 // ::specularAmount<0> pow r5.x, r3.w, r4.x - mul r3.w, r5.x, c11.x + mul r3.w, r5.x, c11.x // ::specularAmount<0> mad r5.xyz, t4, r0.w, c7 - nrm r6.xyz, r5 - dp3_sat r0.w, r2, r6 + nrm r6.xyz, r5 // ::vHalf<0,1,2> + dp3_sat r0.w, r2, r6 // ::specularAmount<0> pow r2.x, r0.w, r4.x - mul r0.w, r2.x, c10.x - mov r2.xyz, c1 + mul r0.w, r2.x, c10.x // ::specularAmount<0> + mov r2.xyz, c1 // MaterialVars::MaterialSpecular<0,1,2> mul r4.xyz, r2, c5 - mul r4.xyz, r3.w, r4 + mul r4.xyz, r3.w, r4 // ::specular<0,1,2> mul r5.xyz, r2, c4 - mad r4.xyz, r5, r0.w, r4 + +#line 200 + mad r4.xyz, r5, r0.w, r4 // ::local4<0,1,2> + +#line 104 mul r2.xyz, r2, c6 - mad r2.xyz, r2, r2.w, r4 - mad r1.xyz, r3, r0, r2 - mov oC0, r1 + +#line 200 + mad r2.xyz, r2, r2.w, r4 // ::local4<0,1,2> + +#line 204 + mad r1.xyz, r3, r0, r2 // ::local5<0,1,2> + +#line 210 + mov oC0, r1 // ::mainTxTk<0,1,2,3> // approximately 59 instruction slots used (1 texture, 58 arithmetic) ps_4_0 @@ -171,17 +209,17 @@ ret const BYTE DGSLPhong_mainTxTk[] = { - 68, 88, 66, 67, 53, 254, - 197, 217, 98, 158, 242, 162, - 169, 189, 161, 231, 187, 201, - 56, 15, 1, 0, 0, 0, - 188, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 235, 167, + 128, 244, 246, 144, 158, 216, + 206, 36, 154, 226, 67, 2, + 231, 43, 1, 0, 0, 0, + 16, 18, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 208, 3, 0, 0, 156, 10, - 0, 0, 136, 11, 0, 0, - 65, 111, 110, 57, 152, 3, - 0, 0, 152, 3, 0, 0, - 0, 2, 255, 255, 40, 3, + 36, 10, 0, 0, 240, 16, + 0, 0, 220, 17, 0, 0, + 65, 111, 110, 57, 236, 9, + 0, 0, 236, 9, 0, 0, + 0, 2, 255, 255, 124, 9, 0, 0, 112, 0, 0, 0, 6, 0, 40, 0, 0, 0, 112, 0, 0, 0, 112, 0, @@ -199,7 +237,277 @@ const BYTE DGSLPhong_mainTxTk[] = 7, 0, 0, 0, 0, 0, 1, 0, 13, 0, 3, 0, 10, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 81, 0, + 0, 2, 255, 255, 254, 255, + 148, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 36, 6, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 51, 0, 0, 0, + 120, 0, 0, 0, 14, 0, + 0, 0, 12, 5, 0, 0, + 72, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 80, 104, 111, 110, + 103, 46, 104, 108, 115, 108, + 0, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 88, 6, + 0, 0, 0, 0, 255, 255, + 112, 6, 0, 0, 0, 0, + 255, 255, 124, 6, 0, 0, + 0, 0, 255, 255, 136, 6, + 0, 0, 0, 0, 255, 255, + 148, 6, 0, 0, 0, 0, + 255, 255, 160, 6, 0, 0, + 204, 0, 0, 0, 172, 6, + 0, 0, 205, 0, 0, 0, + 188, 6, 0, 0, 208, 0, + 0, 0, 204, 6, 0, 0, + 208, 0, 0, 0, 220, 6, + 0, 0, 208, 0, 0, 0, + 240, 6, 0, 0, 192, 0, + 0, 0, 248, 6, 0, 0, + 192, 0, 0, 0, 8, 7, + 0, 0, 101, 0, 0, 0, + 20, 7, 0, 0, 101, 0, + 0, 0, 40, 7, 0, 0, + 191, 0, 0, 0, 52, 7, + 0, 0, 102, 0, 0, 0, + 64, 7, 0, 0, 82, 0, + 0, 0, 80, 7, 0, 0, + 83, 0, 0, 0, 96, 7, + 0, 0, 83, 0, 0, 0, + 112, 7, 0, 0, 199, 0, + 0, 0, 128, 7, 0, 0, + 199, 0, 0, 0, 140, 7, + 0, 0, 103, 0, 0, 0, + 160, 7, 0, 0, 103, 0, + 0, 0, 172, 7, 0, 0, + 82, 0, 0, 0, 188, 7, + 0, 0, 83, 0, 0, 0, + 204, 7, 0, 0, 199, 0, + 0, 0, 220, 7, 0, 0, + 82, 0, 0, 0, 240, 7, + 0, 0, 83, 0, 0, 0, + 0, 8, 0, 0, 199, 0, + 0, 0, 16, 8, 0, 0, + 103, 0, 0, 0, 36, 8, + 0, 0, 103, 0, 0, 0, + 52, 8, 0, 0, 101, 0, + 0, 0, 68, 8, 0, 0, + 101, 0, 0, 0, 88, 8, + 0, 0, 102, 0, 0, 0, + 100, 8, 0, 0, 103, 0, + 0, 0, 116, 8, 0, 0, + 103, 0, 0, 0, 132, 8, + 0, 0, 101, 0, 0, 0, + 148, 8, 0, 0, 101, 0, + 0, 0, 168, 8, 0, 0, + 102, 0, 0, 0, 180, 8, + 0, 0, 103, 0, 0, 0, + 196, 8, 0, 0, 103, 0, + 0, 0, 212, 8, 0, 0, + 104, 0, 0, 0, 228, 8, + 0, 0, 104, 0, 0, 0, + 240, 8, 0, 0, 104, 0, + 0, 0, 0, 9, 0, 0, + 104, 0, 0, 0, 16, 9, + 0, 0, 200, 0, 0, 0, + 32, 9, 0, 0, 104, 0, + 0, 0, 52, 9, 0, 0, + 200, 0, 0, 0, 68, 9, + 0, 0, 204, 0, 0, 0, + 88, 9, 0, 0, 210, 0, + 0, 0, 108, 9, 0, 0, + 77, 97, 116, 101, 114, 105, + 97, 108, 86, 97, 114, 115, + 0, 77, 97, 116, 101, 114, + 105, 97, 108, 65, 109, 98, + 105, 101, 110, 116, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 77, 97, 116, 101, 114, 105, + 97, 108, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 42, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 19, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 65, 109, 111, + 117, 110, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 24, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 27, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 108, 111, + 99, 97, 108, 49, 0, 171, + 21, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 26, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 29, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 108, 111, 99, 97, 108, 52, + 0, 171, 46, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 48, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 108, 111, 99, 97, + 108, 53, 0, 171, 49, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 108, 111, + 99, 97, 108, 54, 0, 171, + 7, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 109, 97, 105, 110, 84, 120, + 84, 107, 0, 102, 114, 97, + 103, 109, 101, 110, 116, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 81, 3, 0, 0, 92, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 108, 3, 0, 0, + 50, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 120, 101, 108, 0, + 112, 111, 115, 0, 117, 118, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 0, + 119, 111, 114, 108, 100, 80, + 111, 115, 0, 116, 111, 69, + 121, 101, 0, 116, 97, 110, + 103, 101, 110, 116, 0, 110, + 111, 114, 109, 97, 108, 0, + 150, 3, 0, 0, 92, 3, + 0, 0, 108, 2, 0, 0, + 92, 3, 0, 0, 154, 3, + 0, 0, 160, 3, 0, 0, + 176, 3, 0, 0, 116, 2, + 0, 0, 186, 3, 0, 0, + 116, 2, 0, 0, 195, 3, + 0, 0, 116, 2, 0, 0, + 201, 3, 0, 0, 92, 3, + 0, 0, 209, 3, 0, 0, + 116, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 216, 3, + 0, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 4, 0, 0, 0, + 16, 0, 17, 0, 18, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 44, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 65, 109, + 111, 117, 110, 116, 0, 171, + 16, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 31, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 34, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 36, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 39, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 41, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 118, 72, 97, 108, 102, 0, + 171, 171, 14, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 33, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 38, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 15, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 16, 2, 0, 0, + 29, 2, 0, 0, 48, 2, + 0, 0, 1, 0, 0, 0, + 64, 2, 0, 0, 16, 2, + 0, 0, 76, 2, 0, 0, + 48, 2, 0, 0, 1, 0, + 0, 0, 96, 2, 0, 0, + 0, 0, 0, 0, 108, 2, + 0, 0, 116, 2, 0, 0, + 1, 0, 0, 0, 132, 2, + 0, 0, 0, 0, 0, 0, + 144, 2, 0, 0, 160, 2, + 0, 0, 3, 0, 0, 0, + 176, 2, 0, 0, 0, 0, + 0, 0, 212, 2, 0, 0, + 116, 2, 0, 0, 3, 0, + 0, 0, 220, 2, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 116, 2, 0, 0, + 2, 0, 0, 0, 8, 3, + 0, 0, 0, 0, 0, 0, + 32, 3, 0, 0, 116, 2, + 0, 0, 1, 0, 0, 0, + 40, 3, 0, 0, 0, 0, + 0, 0, 52, 3, 0, 0, + 160, 2, 0, 0, 1, 0, + 0, 0, 60, 3, 0, 0, + 0, 0, 0, 0, 72, 3, + 0, 0, 116, 3, 0, 0, + 1, 0, 0, 0, 132, 3, + 0, 0, 72, 3, 0, 0, + 144, 3, 0, 0, 24, 4, + 0, 0, 4, 0, 0, 0, + 40, 4, 0, 0, 0, 0, + 0, 0, 88, 4, 0, 0, + 116, 2, 0, 0, 1, 0, + 0, 0, 100, 4, 0, 0, + 0, 0, 0, 0, 112, 4, + 0, 0, 160, 2, 0, 0, + 6, 0, 0, 0, 128, 4, + 0, 0, 0, 0, 0, 0, + 200, 4, 0, 0, 116, 2, + 0, 0, 3, 0, 0, 0, + 208, 4, 0, 0, 0, 0, + 0, 0, 244, 4, 0, 0, + 116, 2, 0, 0, 1, 0, + 0, 0, 0, 5, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 13, 0, 15, 160, 0, 0, 128, 191, 0, 0, 0, 128, 23, 183, 209, 56, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_main.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_main.inc index 907ab9e37d995d2e298da14597975b16d5937758..9e207110864940db7c0024e8f2db082fad56436b 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_main.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_main.inc @@ -27,8 +27,10 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - mov oC0, t0 + dcl t0 // pixel<4,5,6,7> + +#line 83 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLUnlit.hlsl" + mov oC0, t0 // ::main<0,1,2,3> // approximately 1 instruction slot used ps_4_0 @@ -41,84 +43,164 @@ ret const BYTE DGSLUnlit_main[] = { - 68, 88, 66, 67, 105, 73, - 81, 57, 5, 7, 232, 104, - 47, 198, 245, 104, 91, 126, - 113, 199, 1, 0, 0, 0, - 220, 1, 0, 0, 4, 0, + 68, 88, 66, 67, 131, 172, + 120, 173, 112, 184, 143, 42, + 142, 197, 113, 141, 74, 250, + 229, 255, 1, 0, 0, 0, + 192, 3, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 124, 0, 0, 0, 188, 0, - 0, 0, 168, 1, 0, 0, - 65, 111, 110, 57, 68, 0, - 0, 0, 68, 0, 0, 0, - 0, 2, 255, 255, 32, 0, + 96, 2, 0, 0, 160, 2, + 0, 0, 140, 3, 0, 0, + 65, 111, 110, 57, 40, 2, + 0, 0, 40, 2, 0, 0, + 0, 2, 255, 255, 4, 2, 0, 0, 36, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 176, - 255, 255, 0, 0, 83, 72, - 68, 82, 56, 0, 0, 0, - 64, 0, 0, 0, 14, 0, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 228, 0, 0, 0, 8, 0, - 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, + 254, 255, 120, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 180, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, + 116, 0, 0, 0, 2, 0, + 0, 0, 120, 0, 0, 0, + 2, 0, 0, 0, 140, 1, + 0, 0, 136, 0, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 68, 71, 83, 76, 85, 110, + 108, 105, 116, 46, 104, 108, + 115, 108, 0, 171, 40, 0, + 0, 0, 0, 0, 255, 255, + 232, 1, 0, 0, 83, 0, + 0, 0, 244, 1, 0, 0, + 109, 97, 105, 110, 0, 102, + 114, 97, 103, 109, 101, 110, + 116, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 141, 0, 0, 0, + 152, 0, 0, 0, 5, 0, + 0, 0, 1, 0, 4, 0, + 1, 0, 1, 0, 168, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 120, 101, + 108, 0, 112, 111, 115, 0, + 100, 105, 102, 102, 117, 115, + 101, 0, 117, 118, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 218, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 171, 171, + 210, 0, 0, 0, 152, 0, + 0, 0, 214, 0, 0, 0, + 152, 0, 0, 0, 222, 0, + 0, 0, 228, 0, 0, 0, + 244, 0, 0, 0, 0, 1, + 0, 0, 16, 1, 0, 0, + 0, 1, 0, 0, 25, 1, + 0, 0, 0, 1, 0, 0, + 31, 1, 0, 0, 152, 0, + 0, 0, 39, 1, 0, 0, + 0, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 48, 1, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 218, 0, 0, 0, 1, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 0, 0, 0, 0, + 136, 0, 0, 0, 176, 0, + 0, 0, 1, 0, 0, 0, + 192, 0, 0, 0, 136, 0, + 0, 0, 204, 0, 0, 0, + 112, 1, 0, 0, 1, 0, + 0, 0, 128, 1, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 176, 255, 255, + 0, 0, 83, 72, 68, 82, + 56, 0, 0, 0, 64, 0, + 0, 0, 14, 0, 0, 0, + 98, 16, 0, 3, 242, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 16, 0, 1, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 228, 0, + 0, 0, 8, 0, 0, 0, + 8, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 3, 0, + 15, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 15, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 218, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 7, 0, 0, 0, 83, 86, + 95, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTk.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTk.inc index c1091a4d4a186c2670a4403f5543154ed7db068a..fdcc6471cdb984a007c11b800aa0170cd7f2ea4e 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTk.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTk.inc @@ -28,12 +28,14 @@ // ps_2_0 def c0, -1, -0, 0, 0 - dcl t0 + dcl t0 // pixel<4,5,6,7> + +#line 93 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLUnlit.hlsl" mul r0.w, t0.w, t0.w cmp r0, -r0.w, c0.x, c0.y texkill r0 - mov r0, t0 - mov oC0, r0 + mov r0, t0 // ::mainTk<0,1,2,3> + mov oC0, r0 // ::mainTk<0,1,2,3> // approximately 5 instruction slots used ps_4_0 @@ -49,105 +51,194 @@ ret const BYTE DGSLUnlit_mainTk[] = { - 68, 88, 66, 67, 46, 130, - 120, 130, 191, 217, 78, 124, - 7, 169, 79, 105, 72, 21, - 223, 236, 1, 0, 0, 0, - 92, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 245, 73, + 98, 112, 30, 115, 101, 94, + 153, 195, 39, 160, 72, 88, + 83, 207, 1, 0, 0, 0, + 116, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 204, 0, 0, 0, 60, 1, - 0, 0, 40, 2, 0, 0, - 65, 111, 110, 57, 148, 0, - 0, 0, 148, 0, 0, 0, - 0, 2, 255, 255, 112, 0, + 228, 2, 0, 0, 84, 3, + 0, 0, 64, 4, 0, 0, + 65, 111, 110, 57, 172, 2, + 0, 0, 172, 2, 0, 0, + 0, 2, 255, 255, 136, 2, 0, 0, 36, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 2, 255, 255, - 81, 0, 0, 5, 0, 0, - 15, 160, 0, 0, 128, 191, + 254, 255, 133, 0, 68, 66, + 85, 71, 40, 0, 0, 0, + 232, 1, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 116, 0, 0, 0, 7, 0, + 0, 0, 120, 0, 0, 0, + 2, 0, 0, 0, 192, 1, + 0, 0, 176, 0, 0, 0, + 67, 58, 92, 65, 84, 71, + 32, 83, 97, 109, 112, 108, + 101, 32, 68, 101, 118, 101, + 108, 111, 112, 109, 101, 110, + 116, 92, 115, 116, 95, 100, + 101, 118, 92, 75, 105, 116, + 115, 92, 68, 105, 114, 101, + 99, 116, 88, 84, 75, 92, + 83, 114, 99, 92, 83, 104, + 97, 100, 101, 114, 115, 92, + 68, 71, 83, 76, 85, 110, + 108, 105, 116, 46, 104, 108, + 115, 108, 0, 171, 40, 0, + 0, 0, 0, 0, 255, 255, + 28, 2, 0, 0, 0, 0, + 255, 255, 52, 2, 0, 0, + 93, 0, 0, 0, 64, 2, + 0, 0, 93, 0, 0, 0, + 80, 2, 0, 0, 93, 0, + 0, 0, 100, 2, 0, 0, + 95, 0, 0, 0, 108, 2, + 0, 0, 95, 0, 0, 0, + 120, 2, 0, 0, 109, 97, + 105, 110, 84, 107, 0, 102, + 114, 97, 103, 109, 101, 110, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 183, 0, 0, 0, 192, 0, + 0, 0, 5, 0, 0, 0, + 1, 0, 4, 0, 1, 0, + 1, 0, 208, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 120, 101, 108, 0, + 112, 111, 115, 0, 100, 105, + 102, 102, 117, 115, 101, 0, + 117, 118, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 80, 111, 115, 0, 116, + 111, 69, 121, 101, 0, 116, + 97, 110, 103, 101, 110, 116, + 0, 110, 111, 114, 109, 97, + 108, 0, 171, 171, 6, 1, + 0, 0, 192, 0, 0, 0, + 10, 1, 0, 0, 192, 0, + 0, 0, 18, 1, 0, 0, + 24, 1, 0, 0, 40, 1, + 0, 0, 52, 1, 0, 0, + 68, 1, 0, 0, 52, 1, + 0, 0, 77, 1, 0, 0, + 52, 1, 0, 0, 83, 1, + 0, 0, 192, 0, 0, 0, + 91, 1, 0, 0, 52, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 26, 0, 1, 0, + 8, 0, 100, 1, 0, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 0, 0, 0, 0, 176, 0, + 0, 0, 216, 0, 0, 0, + 2, 0, 0, 0, 232, 0, + 0, 0, 176, 0, 0, 0, + 0, 1, 0, 0, 164, 1, + 0, 0, 1, 0, 0, 0, + 180, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 0, 0, 15, 160, 0, 0, + 128, 191, 0, 0, 0, 128, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, + 15, 176, 5, 0, 0, 3, + 0, 0, 8, 128, 0, 0, + 255, 176, 0, 0, 255, 176, + 88, 0, 0, 4, 0, 0, + 15, 128, 0, 0, 255, 129, + 0, 0, 0, 160, 0, 0, + 85, 160, 65, 0, 0, 1, + 0, 0, 15, 128, 1, 0, + 0, 2, 0, 0, 15, 128, + 0, 0, 228, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 104, 0, 0, 0, 64, 0, + 0, 0, 26, 0, 0, 0, + 98, 16, 0, 3, 242, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 24, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 58, 16, 16, 0, + 1, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 5, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 176, - 0, 0, 255, 176, 88, 0, - 0, 4, 0, 0, 15, 128, - 0, 0, 255, 129, 0, 0, - 0, 160, 0, 0, 85, 160, - 65, 0, 0, 1, 0, 0, - 15, 128, 1, 0, 0, 2, - 0, 0, 15, 128, 0, 0, - 228, 176, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 104, 0, - 0, 0, 64, 0, 0, 0, - 26, 0, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 24, 0, 0, 7, 18, 0, + 13, 0, 4, 3, 10, 0, 16, 0, 0, 0, 0, 0, - 58, 16, 16, 0, 1, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 13, 0, - 4, 3, 10, 0, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 16, 0, 1, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 228, 0, + 0, 0, 8, 0, 0, 0, + 8, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 15, - 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 0, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, + 15, 0, 0, 0, 212, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 15, 15, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 218, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 7, 0, 0, 0, + 7, 0, 0, 0, 83, 86, + 95, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTx.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTx.inc index 00083ed59688d9aa839eb1e589054b663cefda2b..11b180b3e925ad45b02f40cee36226dbeaf82b51 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTx.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTx.inc @@ -34,12 +34,14 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1.xy + dcl t0 // pixel<4,5,6,7> + dcl t1.xy // pixel<8,9> dcl_2d s0 + +#line 117 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLUnlit.hlsl" texld r0, t1, s0 - mul r1, r0, t0 - mov oC0, r1 + mul r1, r0, t0 // ::local3<0,1,2>, ::local4<0> + mov oC0, r1 // ::mainTx<0,1,2,3> // approximately 3 instruction slots used (1 texture, 2 arithmetic) ps_4_0 @@ -57,109 +59,212 @@ ret const BYTE DGSLUnlit_mainTx[] = { - 68, 88, 66, 67, 17, 52, - 170, 45, 63, 249, 46, 7, - 141, 68, 209, 179, 128, 184, - 205, 30, 1, 0, 0, 0, - 116, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 14, 132, + 199, 88, 131, 122, 131, 137, + 21, 243, 17, 86, 184, 232, + 27, 220, 1, 0, 0, 0, + 224, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 184, 0, 0, 0, 84, 1, - 0, 0, 64, 2, 0, 0, - 65, 111, 110, 57, 128, 0, - 0, 0, 128, 0, 0, 0, - 0, 2, 255, 255, 88, 0, + 36, 3, 0, 0, 192, 3, + 0, 0, 172, 4, 0, 0, + 65, 111, 110, 57, 236, 2, + 0, 0, 236, 2, 0, 0, + 0, 2, 255, 255, 196, 2, 0, 0, 40, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 1, 0, 36, 0, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 1, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 148, 0, 0, 0, - 64, 0, 0, 0, 37, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 50, 16, + 0, 2, 255, 255, 254, 255, + 154, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 6, 0, 0, 0, + 120, 0, 0, 0, 4, 0, + 0, 0, 236, 1, 0, 0, + 240, 0, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 85, 110, 108, 105, + 116, 46, 104, 108, 115, 108, + 0, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 112, 2, + 0, 0, 0, 0, 255, 255, + 124, 2, 0, 0, 0, 0, + 255, 255, 136, 2, 0, 0, + 117, 0, 0, 0, 148, 2, + 0, 0, 117, 0, 0, 0, + 164, 2, 0, 0, 117, 0, + 0, 0, 180, 2, 0, 0, + 108, 111, 99, 97, 108, 51, + 0, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 108, 111, 99, 97, 108, 52, + 0, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 0, 0, + 109, 97, 105, 110, 84, 120, + 0, 102, 114, 97, 103, 109, + 101, 110, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 0, 0, + 0, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 4, 0, + 1, 0, 1, 0, 16, 1, + 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 120, 101, + 108, 0, 112, 111, 115, 0, + 100, 105, 102, 102, 117, 115, + 101, 0, 117, 118, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 0, 119, 111, + 114, 108, 100, 80, 111, 115, + 0, 116, 111, 69, 121, 101, + 0, 116, 97, 110, 103, 101, + 110, 116, 0, 110, 111, 114, + 109, 97, 108, 0, 58, 1, + 0, 0, 0, 1, 0, 0, + 62, 1, 0, 0, 0, 1, + 0, 0, 70, 1, 0, 0, + 76, 1, 0, 0, 92, 1, + 0, 0, 176, 0, 0, 0, + 102, 1, 0, 0, 176, 0, + 0, 0, 111, 1, 0, 0, + 176, 0, 0, 0, 117, 1, + 0, 0, 0, 1, 0, 0, + 125, 1, 0, 0, 176, 0, + 0, 0, 5, 0, 0, 0, + 1, 0, 26, 0, 1, 0, + 8, 0, 132, 1, 0, 0, + 0, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 1, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 168, 0, + 0, 0, 176, 0, 0, 0, + 1, 0, 0, 0, 192, 0, + 0, 0, 0, 0, 0, 0, + 204, 0, 0, 0, 212, 0, + 0, 0, 1, 0, 0, 0, + 228, 0, 0, 0, 0, 0, + 0, 0, 240, 0, 0, 0, + 24, 1, 0, 0, 1, 0, + 0, 0, 40, 1, 0, 0, + 240, 0, 0, 0, 52, 1, + 0, 0, 196, 1, 0, 0, + 2, 0, 0, 0, 212, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 176, + 0, 8, 228, 160, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 228, 128, 0, 0, + 228, 176, 1, 0, 0, 2, + 0, 8, 15, 128, 1, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 148, 0, + 0, 0, 64, 0, 0, 0, + 37, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 16, 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 70, 126, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 14, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 228, 0, 0, 0, - 8, 0, 0, 0, 8, 0, - 0, 0, 200, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 212, 0, 0, 0, + 70, 30, 16, 0, 1, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 228, 0, + 0, 0, 8, 0, 0, 0, + 8, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 15, - 0, 0, 218, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 3, - 0, 0, 218, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0, 7, 0, - 0, 0, 218, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 0, 0, 15, 0, - 0, 0, 218, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 7, 0, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, + 15, 0, 0, 0, 212, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 15, 15, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 3, 0, 0, 218, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 7, 0, 0, 0, + 7, 0, 0, 0, 83, 86, + 95, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTxTk.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTxTk.inc index a3fd01ee096f313fe571ab1b7aca76d29e855426..f33ab3260ba6f814b4c2d0267081c89ccf06328c 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTxTk.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DGSLUnlit_mainTxTk.inc @@ -35,16 +35,24 @@ // ps_2_0 def c0, -1, -0, 0, 0 - dcl t0 - dcl t1.xy + dcl t0 // pixel<4,5,6,7> + dcl t1.xy // pixel<8,9> dcl_2d s0 + +#line 144 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DGSLUnlit.hlsl" texld r0, t1, s0 - mul r1.w, r0.w, t0.w + mul r1.w, r0.w, t0.w // ::local4<0> + +#line 149 mul r0.w, r1.w, r1.w cmp r2, -r0.w, c0.x, c0.y texkill r2 - mul r1.xyz, r0, t0 - mov oC0, r1 + +#line 144 + mul r1.xyz, r0, t0 // ::local3<0,1,2> + +#line 151 + mov oC0, r1 // ::mainTxTk<0,1,2,3> // approximately 7 instruction slots used (1 texture, 6 arithmetic) ps_4_0 @@ -66,138 +74,248 @@ ret const BYTE DGSLUnlit_mainTxTk[] = { - 68, 88, 66, 67, 219, 12, - 49, 38, 225, 45, 150, 107, - 89, 0, 123, 21, 83, 4, - 147, 41, 1, 0, 0, 0, - 32, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 163, 187, + 53, 119, 142, 182, 238, 196, + 183, 110, 204, 63, 193, 239, + 206, 55, 1, 0, 0, 0, + 184, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 12, 1, 0, 0, 0, 2, - 0, 0, 236, 2, 0, 0, - 65, 111, 110, 57, 212, 0, - 0, 0, 212, 0, 0, 0, - 0, 2, 255, 255, 172, 0, + 164, 3, 0, 0, 152, 4, + 0, 0, 132, 5, 0, 0, + 65, 111, 110, 57, 108, 3, + 0, 0, 108, 3, 0, 0, + 0, 2, 255, 255, 68, 3, 0, 0, 40, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 1, 0, 36, 0, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 81, 0, - 0, 5, 0, 0, 15, 160, - 0, 0, 128, 191, 0, 0, - 0, 128, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 0, 0, 255, 176, - 5, 0, 0, 3, 0, 0, - 8, 128, 1, 0, 255, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 2, 0, 15, 128, - 0, 0, 255, 129, 0, 0, - 0, 160, 0, 0, 85, 160, - 65, 0, 0, 1, 2, 0, - 15, 128, 5, 0, 0, 3, - 1, 0, 7, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 1, 0, 0, 2, 0, 8, - 15, 128, 1, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 236, 0, 0, 0, - 64, 0, 0, 0, 59, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 0, 2, 255, 255, 254, 255, + 165, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 104, 2, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 11, 0, 0, 0, + 120, 0, 0, 0, 4, 0, + 0, 0, 24, 2, 0, 0, + 24, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 68, 71, + 83, 76, 85, 110, 108, 105, + 116, 46, 104, 108, 115, 108, + 0, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 156, 2, + 0, 0, 0, 0, 255, 255, + 180, 2, 0, 0, 0, 0, + 255, 255, 192, 2, 0, 0, + 0, 0, 255, 255, 204, 2, + 0, 0, 144, 0, 0, 0, + 216, 2, 0, 0, 145, 0, + 0, 0, 232, 2, 0, 0, + 149, 0, 0, 0, 248, 2, + 0, 0, 149, 0, 0, 0, + 8, 3, 0, 0, 149, 0, + 0, 0, 28, 3, 0, 0, + 144, 0, 0, 0, 36, 3, + 0, 0, 151, 0, 0, 0, + 52, 3, 0, 0, 108, 111, + 99, 97, 108, 51, 0, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 108, 111, + 99, 97, 108, 52, 0, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 109, 97, + 105, 110, 84, 120, 84, 107, + 0, 102, 114, 97, 103, 109, + 101, 110, 116, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 33, 1, + 0, 0, 44, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 4, 0, 1, 0, 1, 0, + 60, 1, 0, 0, 10, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 112, 105, + 120, 101, 108, 0, 112, 111, + 115, 0, 100, 105, 102, 102, + 117, 115, 101, 0, 117, 118, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 0, + 119, 111, 114, 108, 100, 80, + 111, 115, 0, 116, 111, 69, + 121, 101, 0, 116, 97, 110, + 103, 101, 110, 116, 0, 110, + 111, 114, 109, 97, 108, 0, + 102, 1, 0, 0, 44, 1, + 0, 0, 106, 1, 0, 0, + 44, 1, 0, 0, 114, 1, + 0, 0, 120, 1, 0, 0, + 136, 1, 0, 0, 216, 0, + 0, 0, 146, 1, 0, 0, + 216, 0, 0, 0, 155, 1, + 0, 0, 216, 0, 0, 0, + 161, 1, 0, 0, 44, 1, + 0, 0, 169, 1, 0, 0, + 216, 0, 0, 0, 5, 0, + 0, 0, 1, 0, 26, 0, + 1, 0, 8, 0, 176, 1, + 0, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 208, 0, 0, 0, 216, 0, + 0, 0, 1, 0, 0, 0, + 232, 0, 0, 0, 0, 0, + 0, 0, 244, 0, 0, 0, + 252, 0, 0, 0, 1, 0, + 0, 0, 12, 1, 0, 0, + 0, 0, 0, 0, 24, 1, + 0, 0, 68, 1, 0, 0, + 1, 0, 0, 0, 84, 1, + 0, 0, 24, 1, 0, 0, + 96, 1, 0, 0, 240, 1, + 0, 0, 2, 0, 0, 0, + 0, 2, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 0, 0, 15, 160, 0, 0, + 128, 191, 0, 0, 0, 128, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 1, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 1, 0, + 8, 128, 0, 0, 255, 128, + 0, 0, 255, 176, 5, 0, + 0, 3, 0, 0, 8, 128, + 1, 0, 255, 128, 1, 0, + 255, 128, 88, 0, 0, 4, + 2, 0, 15, 128, 0, 0, + 255, 129, 0, 0, 0, 160, + 0, 0, 85, 160, 65, 0, + 0, 1, 2, 0, 15, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 228, 128, + 0, 0, 228, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 1, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 236, 0, 0, 0, 64, 0, + 0, 0, 59, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 70, 126, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 58, 16, 16, 0, + 1, 0, 0, 0, 24, 0, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 13, 0, 4, 3, + 10, 0, 16, 0, 1, 0, 0, 0, 56, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 58, 16, - 16, 0, 1, 0, 0, 0, - 24, 0, 0, 7, 18, 0, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 13, 0, - 4, 3, 10, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 54, 0, 0, 5, 130, 32, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 228, 0, 0, 0, 8, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 228, 0, 0, 0, 8, 0, 0, 0, - 200, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 218, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 218, 0, 0, 0, 1, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 2, 0, + 15, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 15, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 3, 0, 0, 218, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 7, 0, 0, 0, 218, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 15, 0, 0, 0, 218, 0, + 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 218, 0, 0, 0, 4, 0, + 7, 0, 0, 0, 83, 86, + 95, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 218, 0, 0, 0, 5, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 7, 0, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTexture.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTexture.inc index b06c1c87be632d44f5e612fe3239f72291cbbcc9..6442d1ee84c7e360dda5e43a8e0d193586f864e9 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTexture.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTexture.inc @@ -39,20 +39,26 @@ // ps_2_0 def c1, 2, 2, 2, 1 - dcl t0 - dcl t1 - dcl t2 + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2 // pin<8,9,11,10> dcl_2d s0 dcl_2d s1 + +#line 98 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" mov r0.xy, t2.wzyx - texld r0, r0, s1 - texld r1, t2, s0 + texld r0, r0, s1 // ::overlay<0,1,2,3> + texld r1, t2, s0 // ::color<0,1,2,3> + +#line 101 mul r0, r0, t0 mul r1, r1, c1 - mul r0, r0, r1 + mul r0, r0, r1 // ::color<0,1,2,3> + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r1.xyz, c0, r0.w, -r0 - mad r0.xyz, t1.w, r1, r0 - mov oC0, r0 + mad r0.xyz, t1.w, r1, r0 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSDualTexture<0,1,2,3> // approximately 9 instruction slots used (2 texture, 7 arithmetic) ps_4_0 @@ -81,17 +87,17 @@ ret const BYTE DualTextureEffect_PSDualTexture[] = { - 68, 88, 66, 67, 174, 36, - 68, 110, 51, 2, 130, 217, - 225, 159, 194, 118, 191, 73, - 0, 2, 1, 0, 0, 0, - 188, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 90, 48, + 60, 15, 10, 243, 234, 83, + 37, 109, 33, 173, 19, 116, + 245, 45, 1, 0, 0, 0, + 164, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 92, 1, 0, 0, 8, 3, - 0, 0, 136, 3, 0, 0, - 65, 111, 110, 57, 36, 1, - 0, 0, 36, 1, 0, 0, - 0, 2, 255, 255, 236, 0, + 68, 4, 0, 0, 240, 5, + 0, 0, 112, 6, 0, 0, + 65, 111, 110, 57, 12, 4, + 0, 0, 12, 4, 0, 0, + 0, 2, 255, 255, 212, 3, 0, 0, 56, 0, 0, 0, 1, 0, 44, 0, 0, 0, 56, 0, 0, 0, 56, 0, @@ -100,7 +106,131 @@ const BYTE DualTextureEffect_PSDualTexture[] = 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 255, 255, 81, 0, 0, 5, + 255, 255, 254, 255, 185, 0, + 68, 66, 85, 71, 40, 0, + 0, 0, 184, 2, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 192, 0, 0, 0, + 15, 0, 0, 0, 200, 0, + 0, 0, 5, 0, 0, 0, + 84, 2, 0, 0, 64, 1, + 0, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 68, 117, 97, 108, + 84, 101, 120, 116, 117, 114, + 101, 69, 102, 102, 101, 99, + 116, 46, 102, 120, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 40, 0, + 0, 0, 121, 0, 0, 0, + 0, 0, 255, 255, 236, 2, + 0, 0, 0, 0, 255, 255, + 4, 3, 0, 0, 0, 0, + 255, 255, 16, 3, 0, 0, + 0, 0, 255, 255, 28, 3, + 0, 0, 0, 0, 255, 255, + 40, 3, 0, 0, 0, 0, + 255, 255, 52, 3, 0, 0, + 98, 0, 0, 0, 64, 3, + 0, 0, 98, 0, 0, 0, + 76, 3, 0, 0, 97, 0, + 0, 0, 92, 3, 0, 0, + 101, 0, 0, 0, 108, 3, + 0, 0, 101, 0, 0, 0, + 124, 3, 0, 0, 101, 0, + 0, 0, 140, 3, 0, 0, + 20, 0, 1, 0, 156, 3, + 0, 0, 20, 0, 1, 0, + 176, 3, 0, 0, 20, 0, + 1, 0, 196, 3, 0, 0, + 80, 83, 68, 117, 97, 108, + 84, 101, 120, 116, 117, 114, + 101, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 65, 112, 112, 108, + 121, 70, 111, 103, 0, 99, + 111, 108, 111, 114, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 8, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 11, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 111, 118, + 101, 114, 108, 97, 121, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 110, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 50, 0, 171, 171, + 200, 1, 0, 0, 124, 1, + 0, 0, 208, 1, 0, 0, + 124, 1, 0, 0, 217, 1, + 0, 0, 228, 1, 0, 0, + 244, 1, 0, 0, 228, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 0, 2, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 3, 0, 0, 0, 8, 0, + 9, 0, 11, 0, 10, 0, + 0, 0, 0, 0, 64, 1, + 0, 0, 80, 1, 0, 0, + 1, 0, 0, 0, 96, 1, + 0, 0, 108, 1, 0, 0, + 117, 1, 0, 0, 124, 1, + 0, 0, 1, 0, 0, 0, + 140, 1, 0, 0, 0, 0, + 0, 0, 117, 1, 0, 0, + 124, 1, 0, 0, 2, 0, + 0, 0, 152, 1, 0, 0, + 0, 0, 0, 0, 176, 1, + 0, 0, 124, 1, 0, 0, + 1, 0, 0, 0, 184, 1, + 0, 0, 64, 1, 0, 0, + 196, 1, 0, 0, 32, 2, + 0, 0, 3, 0, 0, 0, + 48, 2, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, 1, 0, 15, 160, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTextureNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTextureNoFog.inc index 9e10a36a5095739251809c5dff04cd9c9681f5e4..59cac1cfdf1575a92b25413b4a0b3cc5d563523a 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTextureNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_PSDualTextureNoFog.inc @@ -31,17 +31,21 @@ // ps_2_0 def c0, 2, 2, 2, 1 - dcl t0 - dcl t1 + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,7,6> dcl_2d s0 dcl_2d s1 + +#line 113 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" mov r0.xy, t1.wzyx - texld r0, r0, s1 - texld r1, t1, s0 + texld r0, r0, s1 // ::overlay<0,1,2,3> + texld r1, t1, s0 // ::color<0,1,2,3> + +#line 116 mul r0, r0, t0 mul r1, r1, c0 - mul r0, r0, r1 - mov oC0, r0 + mul r0, r0, r1 // ::color<0,1,2,3> + mov oC0, r0 // ::PSDualTextureNoFog<0,1,2,3> // approximately 7 instruction slots used (2 texture, 5 arithmetic) ps_4_0 @@ -65,128 +69,225 @@ ret const BYTE DualTextureEffect_PSDualTextureNoFog[] = { - 68, 88, 66, 67, 153, 27, - 95, 207, 68, 212, 28, 53, - 52, 118, 247, 86, 20, 184, - 20, 234, 1, 0, 0, 0, - 228, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 247, 98, + 86, 46, 82, 158, 118, 62, + 77, 41, 130, 108, 229, 62, + 221, 37, 1, 0, 0, 0, + 44, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 28, 1, 0, 0, 72, 2, - 0, 0, 176, 2, 0, 0, - 65, 111, 110, 57, 228, 0, - 0, 0, 228, 0, 0, 0, - 0, 2, 255, 255, 184, 0, + 100, 3, 0, 0, 144, 4, + 0, 0, 248, 4, 0, 0, + 65, 111, 110, 57, 44, 3, + 0, 0, 44, 3, 0, 0, + 0, 2, 255, 255, 0, 3, 0, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 2, 0, 36, 0, 0, 0, 44, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 2, - 255, 255, 81, 0, 0, 5, - 0, 0, 15, 160, 0, 0, - 0, 64, 0, 0, 0, 64, + 255, 255, 254, 255, 145, 0, + 68, 66, 85, 71, 40, 0, + 0, 0, 24, 2, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 124, 0, 0, 0, + 12, 0, 0, 0, 128, 0, + 0, 0, 4, 0, 0, 0, + 200, 1, 0, 0, 224, 0, + 0, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 68, 117, 97, 108, + 84, 101, 120, 116, 117, 114, + 101, 69, 102, 102, 101, 99, + 116, 46, 102, 120, 0, 171, + 171, 171, 40, 0, 0, 0, + 0, 0, 255, 255, 76, 2, + 0, 0, 0, 0, 255, 255, + 100, 2, 0, 0, 0, 0, + 255, 255, 112, 2, 0, 0, + 0, 0, 255, 255, 124, 2, + 0, 0, 0, 0, 255, 255, + 136, 2, 0, 0, 113, 0, + 0, 0, 148, 2, 0, 0, + 113, 0, 0, 0, 160, 2, + 0, 0, 112, 0, 0, 0, + 176, 2, 0, 0, 116, 0, + 0, 0, 192, 2, 0, 0, + 116, 0, 0, 0, 208, 2, + 0, 0, 116, 0, 0, 0, + 224, 2, 0, 0, 116, 0, + 0, 0, 240, 2, 0, 0, + 80, 83, 68, 117, 97, 108, + 84, 101, 120, 116, 117, 114, + 101, 78, 111, 70, 111, 103, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 99, 111, 108, 111, 114, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 10, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 111, 118, 101, 114, 108, 97, + 121, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 50, 0, 171, 171, + 88, 1, 0, 0, 24, 1, + 0, 0, 96, 1, 0, 0, + 108, 1, 0, 0, 124, 1, + 0, 0, 108, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 8, 0, 1, 0, 3, 0, + 136, 1, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 7, 0, 6, 0, 0, 0, + 0, 0, 224, 0, 0, 0, + 244, 0, 0, 0, 1, 0, + 0, 0, 4, 1, 0, 0, + 0, 0, 0, 0, 16, 1, + 0, 0, 24, 1, 0, 0, + 2, 0, 0, 0, 40, 1, + 0, 0, 0, 0, 0, 0, + 64, 1, 0, 0, 24, 1, + 0, 0, 1, 0, 0, 0, + 72, 1, 0, 0, 224, 0, + 0, 0, 84, 1, 0, 0, + 160, 1, 0, 0, 2, 0, + 0, 0, 176, 1, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, + 0, 5, 0, 0, 15, 160, 0, 0, 0, 64, 0, 0, - 128, 63, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 1, 8, - 15, 160, 1, 0, 0, 2, - 0, 0, 3, 128, 1, 0, - 27, 176, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 1, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 1, 0, 228, 176, - 0, 8, 228, 160, 5, 0, + 0, 64, 0, 0, 0, 64, + 0, 0, 128, 63, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 1, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 31, 0, + 0, 2, 0, 0, 0, 144, + 1, 8, 15, 160, 1, 0, + 0, 2, 0, 0, 3, 128, + 1, 0, 27, 176, 66, 0, 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 0, - 228, 176, 5, 0, 0, 3, + 0, 0, 228, 128, 1, 8, + 228, 160, 66, 0, 0, 3, 1, 0, 15, 128, 1, 0, - 228, 128, 0, 0, 228, 160, + 228, 176, 0, 8, 228, 160, 5, 0, 0, 3, 0, 0, 15, 128, 0, 0, 228, 128, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 36, 1, 0, 0, 64, 0, - 0, 0, 73, 0, 0, 0, - 90, 0, 0, 3, 0, 96, + 0, 0, 228, 176, 5, 0, + 0, 3, 1, 0, 15, 128, + 1, 0, 228, 128, 0, 0, + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 1, 0, 228, 128, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 36, 1, 0, 0, + 64, 0, 0, 0, 73, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 1, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 1, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 194, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 69, 0, 0, 9, 242, 0, 16, 0, 0, 0, 0, 0, - 90, 0, 0, 3, 0, 96, + 230, 26, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 1, 0, 0, 0, 0, 96, 16, 0, 1, 0, 0, 0, - 88, 24, 0, 4, 0, 112, + 56, 0, 0, 7, 242, 0, 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 1, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 194, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 69, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 69, 0, 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 230, 26, + 1, 0, 0, 0, 70, 16, 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, + 70, 126, 16, 0, 0, 0, 0, 0, 0, 96, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 64, + 0, 0, 0, 0, 56, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 128, 63, - 56, 0, 0, 7, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 242, 32, 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 96, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 96, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 86, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 86, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 3, + 0, 0, 86, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 12, 12, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 12, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTexture.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTexture.inc index 46b8d4975d9233457f3603ddd249d2aecb46f290..9c93e422eb3c1a593e1898bd10da01c03aa21e1f 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTexture.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTexture.inc @@ -42,22 +42,34 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSDualTexture<14> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xyz, c7.x - mov oT2.xy, v1 - mov oT2.zw, v2.xyyx + min oT1.w, r0.x, c7.y // ::VSDualTexture<7> + +#line 43 + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 33 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSDualTexture<12,13> + mov oPos.w, r0.z // ::VSDualTexture<15> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSDualTexture<0,1,2,3> + mov oT1.xyz, c7.x // ::VSDualTexture<4,5,6> + +#line 40 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mov oT2.xy, v1 // ::VSDualTexture<8,9> + mov oT2.zw, v2.xyyx // ::VSDualTexture<11,10> // approximately 13 instruction slots used vs_4_0 @@ -85,17 +97,17 @@ ret const BYTE DualTextureEffect_VSDualTexture[] = { - 68, 88, 66, 67, 88, 79, - 46, 165, 110, 4, 103, 119, - 19, 141, 88, 31, 26, 233, - 211, 116, 1, 0, 0, 0, - 24, 4, 0, 0, 4, 0, + 68, 88, 66, 67, 77, 60, + 45, 61, 77, 38, 39, 90, + 195, 111, 157, 76, 71, 113, + 130, 199, 1, 0, 0, 0, + 184, 7, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 124, 1, 0, 0, 4, 3, - 0, 0, 116, 3, 0, 0, - 65, 111, 110, 57, 68, 1, - 0, 0, 68, 1, 0, 0, - 0, 2, 254, 255, 4, 1, + 28, 5, 0, 0, 164, 6, + 0, 0, 20, 7, 0, 0, + 65, 111, 110, 57, 228, 4, + 0, 0, 228, 4, 0, 0, + 0, 2, 254, 255, 164, 4, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -105,159 +117,314 @@ const BYTE DualTextureEffect_VSDualTexture[] = 0, 0, 0, 0, 2, 0, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 7, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 231, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 5, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 2, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 7, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, + 2, 0, 0, 0, 192, 0, + 0, 0, 17, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 52, 3, 0, 0, + 80, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 68, 117, 97, + 108, 84, 101, 120, 116, 117, + 114, 101, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 164, 3, 0, 0, 0, 0, + 255, 255, 188, 3, 0, 0, + 0, 0, 255, 255, 200, 3, + 0, 0, 0, 0, 255, 255, + 212, 3, 0, 0, 43, 0, + 0, 0, 224, 3, 0, 0, + 14, 0, 0, 0, 240, 3, + 0, 0, 14, 0, 0, 0, + 0, 4, 0, 0, 14, 0, + 0, 0, 16, 4, 0, 0, + 43, 0, 0, 0, 32, 4, + 0, 0, 43, 0, 0, 0, + 48, 4, 0, 0, 43, 0, + 0, 0, 64, 4, 0, 0, + 33, 0, 1, 0, 80, 4, + 0, 0, 33, 0, 1, 0, + 100, 4, 0, 0, 44, 0, + 0, 0, 112, 4, 0, 0, + 45, 0, 0, 0, 124, 4, + 0, 0, 40, 0, 1, 0, + 136, 4, 0, 0, 40, 0, + 1, 0, 148, 4, 0, 0, + 86, 83, 68, 117, 97, 108, + 84, 101, 120, 116, 117, 114, + 101, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 50, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 171, 171, 94, 1, + 0, 0, 104, 1, 0, 0, + 120, 1, 0, 0, 104, 1, + 0, 0, 129, 1, 0, 0, + 140, 1, 0, 0, 156, 1, + 0, 0, 140, 1, 0, 0, + 166, 1, 0, 0, 104, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 16, 0, 1, 0, + 5, 0, 180, 1, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 14, 0, 255, 255, + 7, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 11, 0, 0, 0, 12, 0, + 13, 0, 255, 255, 255, 255, + 12, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 15, 0, + 13, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 14, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 15, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 16, 0, 0, 0, 255, 255, + 255, 255, 11, 0, 10, 0, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171, 171, 171, 80, 2, + 0, 0, 104, 1, 0, 0, + 129, 1, 0, 0, 140, 1, + 0, 0, 156, 1, 0, 0, + 140, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 8, 0, + 1, 0, 3, 0, 92, 2, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 6, 0, 7, 0, 255, 255, + 255, 255, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 173, 2, + 0, 0, 104, 1, 0, 0, + 94, 1, 0, 0, 104, 1, + 0, 0, 120, 1, 0, 0, + 180, 2, 0, 0, 196, 2, + 0, 0, 208, 2, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 224, 2, 0, 0, 8, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 9, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 10, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 80, 1, 0, 0, + 220, 1, 0, 0, 8, 0, + 0, 0, 236, 1, 0, 0, + 80, 1, 0, 0, 76, 2, + 0, 0, 116, 2, 0, 0, + 3, 0, 0, 0, 132, 2, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 3, + 0, 0, 3, 0, 0, 0, + 16, 3, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 7, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 9, 0, 0, 3, + 0, 0, 4, 192, 0, 0, + 228, 144, 5, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 2, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, 0, 0, 0, 128, 7, 0, - 85, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 3, 0, 228, 160, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 7, 0, 85, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 228, 144, - 4, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 6, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 1, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 7, 224, - 7, 0, 0, 160, 1, 0, - 0, 2, 2, 0, 3, 224, - 1, 0, 228, 144, 1, 0, - 0, 2, 2, 0, 12, 224, - 2, 0, 20, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 128, 1, 0, 0, 64, 0, - 1, 0, 96, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 194, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, + 1, 128, 0, 0, 228, 144, + 3, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 4, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 6, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 170, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 192, 0, 0, + 170, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 1, 0, + 228, 160, 1, 0, 0, 2, + 1, 0, 7, 224, 7, 0, + 0, 160, 1, 0, 0, 2, + 2, 0, 3, 224, 1, 0, + 228, 144, 1, 0, 0, 2, + 2, 0, 12, 224, 2, 0, + 20, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 128, 1, + 0, 0, 64, 0, 1, 0, + 96, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 194, 32, 16, 0, 2, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 17, 32, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 8, + 114, 32, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 2, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 194, 32, + 16, 0, 2, 0, 0, 0, + 6, 20, 16, 0, 2, 0, + 0, 0, 17, 0, 0, 8, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 8, 114, 32, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 194, 32, 16, 0, 2, 0, - 0, 0, 6, 20, 16, 0, - 2, 0, 0, 0, 17, 0, - 0, 8, 18, 32, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 17, 0, 0, 8, 34, 32, + 0, 0, 4, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 17, 0, 0, 8, - 66, 32, 16, 0, 3, 0, + 130, 32, 16, 0, 3, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 17, 0, - 0, 8, 130, 32, 16, 0, - 3, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 104, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 92, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 79, 83, 71, 78, - 156, 0, 0, 0, 5, 0, + 6, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 104, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 128, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 134, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 0, 0, + 92, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 3, 12, 0, 0, - 134, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, + 79, 83, 71, 78, 156, 0, + 0, 0, 5, 0, 0, 0, + 8, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 12, 3, 0, 0, - 143, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 128, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 134, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 12, 0, 0, 134, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 12, 3, 0, 0, 143, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureNoFog.inc index 7cce460de87aabdf6d042b471d1f172149f540b3..0e7dc755f1374dfde3b690399e667089147dfaf9 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureNoFog.inc @@ -40,18 +40,26 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dp4 oPos.z, v0, c4 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0, c1 - mov oT1.xy, v1 - mov oT1.zw, v2.xyyx + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSDualTextureNoFog<10> + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 48 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSDualTextureNoFog<8,9> + mov oPos.w, r0.z // ::VSDualTextureNoFog<11> + +#line 44 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT0, c1 // ::VSDualTextureNoFog<0,1,2,3> + +#line 55 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mov oT1.xy, v1 // ::VSDualTextureNoFog<4,5> + mov oT1.zw, v2.xyyx // ::VSDualTextureNoFog<7,6> // approximately 9 instruction slots used vs_4_0 @@ -76,17 +84,17 @@ ret const BYTE DualTextureEffect_VSDualTextureNoFog[] = { - 68, 88, 66, 67, 30, 75, - 216, 234, 121, 215, 229, 59, - 247, 49, 209, 178, 22, 248, - 155, 79, 1, 0, 0, 0, - 96, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 226, 38, + 56, 142, 173, 71, 126, 81, + 49, 0, 70, 146, 32, 177, + 75, 62, 1, 0, 0, 0, + 192, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 40, 1, 0, 0, 100, 2, - 0, 0, 212, 2, 0, 0, - 65, 111, 110, 57, 240, 0, - 0, 0, 240, 0, 0, 0, - 0, 2, 254, 255, 176, 0, + 136, 4, 0, 0, 196, 5, + 0, 0, 52, 6, 0, 0, + 65, 111, 110, 57, 80, 4, + 0, 0, 80, 4, 0, 0, + 0, 2, 254, 255, 16, 4, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -96,7 +104,151 @@ const BYTE DualTextureEffect_VSDualTextureNoFog[] = 0, 0, 0, 0, 3, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, + 0, 2, 254, 255, 254, 255, + 215, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 48, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 12, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 244, 2, 0, 0, + 40, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 68, 117, 97, + 108, 84, 101, 120, 116, 117, + 114, 101, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 100, 3, 0, 0, 0, 0, + 255, 255, 112, 3, 0, 0, + 0, 0, 255, 255, 124, 3, + 0, 0, 43, 0, 0, 0, + 136, 3, 0, 0, 43, 0, + 0, 0, 152, 3, 0, 0, + 43, 0, 0, 0, 168, 3, + 0, 0, 43, 0, 0, 0, + 184, 3, 0, 0, 48, 0, + 1, 0, 200, 3, 0, 0, + 48, 0, 1, 0, 220, 3, + 0, 0, 44, 0, 0, 0, + 232, 3, 0, 0, 55, 0, + 1, 0, 244, 3, 0, 0, + 55, 0, 1, 0, 0, 4, + 0, 0, 86, 83, 68, 117, + 97, 108, 84, 101, 120, 116, + 117, 114, 101, 78, 111, 70, + 111, 103, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 50, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 171, 171, 59, 1, 0, 0, + 68, 1, 0, 0, 84, 1, + 0, 0, 96, 1, 0, 0, + 112, 1, 0, 0, 96, 1, + 0, 0, 122, 1, 0, 0, + 68, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 136, 1, + 0, 0, 3, 0, 0, 0, + 255, 255, 255, 255, 10, 0, + 255, 255, 7, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 8, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 11, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 10, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 11, 0, 0, 0, + 255, 255, 255, 255, 7, 0, + 6, 0, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171, 171, 171, + 4, 2, 0, 0, 68, 1, + 0, 0, 84, 1, 0, 0, + 96, 1, 0, 0, 112, 1, + 0, 0, 96, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 8, 0, 1, 0, 3, 0, + 16, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 2, 0, + 0, 0, 6, 0, 7, 0, + 255, 255, 255, 255, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 97, 2, 0, 0, 68, 1, + 0, 0, 59, 1, 0, 0, + 68, 1, 0, 0, 104, 2, + 0, 0, 116, 2, 0, 0, + 132, 2, 0, 0, 144, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 160, 2, 0, 0, + 4, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 5, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 6, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 40, 1, + 0, 0, 168, 1, 0, 0, + 6, 0, 0, 0, 184, 1, + 0, 0, 40, 1, 0, 0, + 0, 2, 0, 0, 40, 2, + 0, 0, 3, 0, 0, 0, + 56, 2, 0, 0, 0, 0, + 0, 0, 92, 2, 0, 0, + 192, 2, 0, 0, 3, 0, + 0, 0, 208, 2, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, 0, 2, 5, 0, 0, 128, 0, 0, 15, 144, 31, 0, 0, 2, 5, 0, 1, 128, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVc.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVc.inc index 96288618c932beb4a2b763dcfc0d2d36b9b34a2e..e325c8e5b2720eb176b727b2dd9007bb8bb1a027 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVc.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVc.inc @@ -43,23 +43,37 @@ // vs_2_0 def c7, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dp4 oPos.z, v0, c5 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7> + dcl_texcoord3 v3 // vin<8,9,10,11> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c5 // ::VSDualTextureVc<14> + +#line 14 dp4 r0.x, v0, c2 max r0.x, r0.x, c7.x - min oT1.w, r0.x, c7.y - mul oT0, v3, c1 - dp4 r0.x, v0, c3 - dp4 r0.y, v0, c4 - dp4 r0.z, v0, c6 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xyz, c7.x - mov oT2.xy, v1 - mov oT2.zw, v2.xyyx + min oT1.w, r0.x, c7.y // ::VSDualTextureVc<7> + +#line 72 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mul oT0, v3, c1 // ::VSDualTextureVc<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c3 // ::vout<0> + dp4 r0.y, v0, c4 // ::vout<1> + dp4 r0.z, v0, c6 // ::vout<3> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSDualTextureVc<12,13> + mov oPos.w, r0.z // ::VSDualTextureVc<15> + +#line 45 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mov oT1.xyz, c7.x // ::VSDualTextureVc<4,5,6> + +#line 70 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mov oT2.xy, v1 // ::VSDualTextureVc<8,9> + mov oT2.zw, v2.xyyx // ::VSDualTextureVc<11,10> // approximately 13 instruction slots used vs_4_0 @@ -88,17 +102,17 @@ ret const BYTE DualTextureEffect_VSDualTextureVc[] = { - 68, 88, 66, 67, 203, 16, - 198, 231, 197, 220, 255, 190, - 38, 217, 54, 1, 67, 218, - 120, 110, 1, 0, 0, 0, - 88, 4, 0, 0, 4, 0, + 68, 88, 66, 67, 23, 20, + 57, 133, 81, 250, 177, 30, + 147, 64, 150, 199, 71, 109, + 18, 136, 1, 0, 0, 0, + 24, 8, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 140, 1, 0, 0, 40, 3, - 0, 0, 180, 3, 0, 0, - 65, 111, 110, 57, 84, 1, - 0, 0, 84, 1, 0, 0, - 0, 2, 254, 255, 20, 1, + 76, 5, 0, 0, 232, 6, + 0, 0, 116, 7, 0, 0, + 65, 111, 110, 57, 20, 5, + 0, 0, 20, 5, 0, 0, + 0, 2, 254, 255, 212, 4, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -108,7 +122,167 @@ const BYTE DualTextureEffect_VSDualTextureVc[] = 0, 0, 0, 0, 2, 0, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 239, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 144, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 18, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 84, 3, 0, 0, + 88, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 68, 117, 97, + 108, 84, 101, 120, 116, 117, + 114, 101, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 196, 3, 0, 0, 0, 0, + 255, 255, 220, 3, 0, 0, + 0, 0, 255, 255, 232, 3, + 0, 0, 0, 0, 255, 255, + 244, 3, 0, 0, 0, 0, + 255, 255, 0, 4, 0, 0, + 43, 0, 0, 0, 12, 4, + 0, 0, 14, 0, 0, 0, + 28, 4, 0, 0, 14, 0, + 0, 0, 44, 4, 0, 0, + 14, 0, 0, 0, 60, 4, + 0, 0, 72, 0, 1, 0, + 76, 4, 0, 0, 43, 0, + 0, 0, 92, 4, 0, 0, + 43, 0, 0, 0, 108, 4, + 0, 0, 43, 0, 0, 0, + 124, 4, 0, 0, 63, 0, + 1, 0, 140, 4, 0, 0, + 63, 0, 1, 0, 160, 4, + 0, 0, 45, 0, 0, 0, + 172, 4, 0, 0, 70, 0, + 1, 0, 184, 4, 0, 0, + 70, 0, 1, 0, 196, 4, + 0, 0, 86, 83, 68, 117, + 97, 108, 84, 101, 120, 116, + 117, 114, 101, 86, 99, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 50, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 171, 171, + 104, 1, 0, 0, 112, 1, + 0, 0, 128, 1, 0, 0, + 112, 1, 0, 0, 137, 1, + 0, 0, 148, 1, 0, 0, + 164, 1, 0, 0, 148, 1, + 0, 0, 174, 1, 0, 0, + 112, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 16, 0, + 1, 0, 5, 0, 188, 1, + 0, 0, 5, 0, 0, 0, + 255, 255, 255, 255, 14, 0, + 255, 255, 8, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 13, 0, 0, 0, + 12, 0, 13, 0, 255, 255, + 255, 255, 14, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 15, 0, 15, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 16, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 17, 0, 0, 0, + 255, 255, 255, 255, 11, 0, + 10, 0, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 67, 111, 108, + 111, 114, 0, 171, 88, 2, + 0, 0, 112, 1, 0, 0, + 137, 1, 0, 0, 148, 1, + 0, 0, 164, 1, 0, 0, + 148, 1, 0, 0, 97, 2, + 0, 0, 112, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 104, 2, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 3, 0, + 0, 0, 6, 0, 7, 0, + 255, 255, 255, 255, 4, 0, + 0, 0, 8, 0, 9, 0, + 10, 0, 11, 0, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 205, 2, 0, 0, 112, 1, + 0, 0, 104, 1, 0, 0, + 112, 1, 0, 0, 128, 1, + 0, 0, 212, 2, 0, 0, + 228, 2, 0, 0, 240, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 0, 3, 0, 0, + 10, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 11, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 12, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 88, 1, + 0, 0, 228, 1, 0, 0, + 8, 0, 0, 0, 244, 1, + 0, 0, 88, 1, 0, 0, + 84, 2, 0, 0, 136, 2, + 0, 0, 4, 0, 0, 0, + 152, 2, 0, 0, 0, 0, + 0, 0, 200, 2, 0, 0, + 32, 3, 0, 0, 3, 0, + 0, 0, 48, 3, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 7, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVcNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVcNoFog.inc index 1b59843186ddb902aa30446af8f65e30a28e958b..a9ee839962b6023a63d4c18619973bd26570afd3 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVcNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/DualTextureEffect_VSDualTextureVcNoFog.inc @@ -41,19 +41,29 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dp4 oPos.z, v0, c4 - mul oT0, v3, c1 - dp4 r0.x, v0, c2 - dp4 r0.y, v0, c3 - dp4 r0.z, v0, c5 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT1.xy, v1 - mov oT1.zw, v2.xyyx + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5> + dcl_texcoord2 v2 // vin<6,7> + dcl_texcoord3 v3 // vin<8,9,10,11> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 oPos.z, v0, c4 // ::VSDualTextureVcNoFog<10> + +#line 88 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mul oT0, v3, c1 // ::VSDualTextureVcNoFog<0,1,2,3> + +#line 43 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + dp4 r0.x, v0, c2 // ::vout<0> + dp4 r0.y, v0, c3 // ::vout<1> + dp4 r0.z, v0, c5 // ::vout<3> + +#line 79 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\DualTextureEffect.fx" + mad oPos.xy, r0.z, c0, r0 // ::VSDualTextureVcNoFog<8,9> + mov oPos.w, r0.z // ::VSDualTextureVcNoFog<11> + +#line 86 + mov oT1.xy, v1 // ::VSDualTextureVcNoFog<4,5> + mov oT1.zw, v2.xyyx // ::VSDualTextureVcNoFog<7,6> // approximately 9 instruction slots used vs_4_0 @@ -79,17 +89,17 @@ ret const BYTE DualTextureEffect_VSDualTextureVcNoFog[] = { - 68, 88, 66, 67, 96, 251, - 156, 208, 35, 81, 22, 155, - 149, 224, 122, 115, 231, 51, - 123, 227, 1, 0, 0, 0, - 160, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 48, 59, + 151, 148, 181, 214, 129, 185, + 85, 40, 102, 178, 177, 247, + 49, 227, 1, 0, 0, 0, + 36, 7, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 56, 1, 0, 0, 136, 2, - 0, 0, 20, 3, 0, 0, - 65, 111, 110, 57, 0, 1, - 0, 0, 0, 1, 0, 0, - 0, 2, 254, 255, 192, 0, + 188, 4, 0, 0, 12, 6, + 0, 0, 152, 6, 0, 0, + 65, 111, 110, 57, 132, 4, + 0, 0, 132, 4, 0, 0, + 0, 2, 254, 255, 68, 4, 0, 0, 64, 0, 0, 0, 2, 0, 36, 0, 0, 0, 60, 0, 0, 0, 60, 0, @@ -99,7 +109,157 @@ const BYTE DualTextureEffect_VSDualTextureVcNoFog[] = 0, 0, 0, 0, 3, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, + 0, 2, 254, 255, 254, 255, + 224, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 84, 3, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 192, 0, + 0, 0, 13, 0, 0, 0, + 200, 0, 0, 0, 3, 0, + 0, 0, 24, 3, 0, 0, + 48, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 68, 117, 97, + 108, 84, 101, 120, 116, 117, + 114, 101, 69, 102, 102, 101, + 99, 116, 46, 102, 120, 0, + 40, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 255, 255, + 136, 3, 0, 0, 0, 0, + 255, 255, 148, 3, 0, 0, + 0, 0, 255, 255, 160, 3, + 0, 0, 0, 0, 255, 255, + 172, 3, 0, 0, 43, 0, + 0, 0, 184, 3, 0, 0, + 88, 0, 1, 0, 200, 3, + 0, 0, 43, 0, 0, 0, + 216, 3, 0, 0, 43, 0, + 0, 0, 232, 3, 0, 0, + 43, 0, 0, 0, 248, 3, + 0, 0, 79, 0, 1, 0, + 8, 4, 0, 0, 79, 0, + 1, 0, 28, 4, 0, 0, + 86, 0, 1, 0, 40, 4, + 0, 0, 86, 0, 1, 0, + 52, 4, 0, 0, 86, 83, + 68, 117, 97, 108, 84, 101, + 120, 116, 117, 114, 101, 86, + 99, 78, 111, 70, 111, 103, + 0, 68, 105, 102, 102, 117, + 115, 101, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 50, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 171, 171, 69, 1, 0, 0, + 80, 1, 0, 0, 96, 1, + 0, 0, 108, 1, 0, 0, + 124, 1, 0, 0, 108, 1, + 0, 0, 134, 1, 0, 0, + 80, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 148, 1, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 10, 0, + 255, 255, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 9, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 10, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 11, 0, 11, 0, 0, 0, + 4, 0, 5, 0, 255, 255, + 255, 255, 12, 0, 0, 0, + 255, 255, 255, 255, 7, 0, + 6, 0, 118, 105, 110, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 67, 111, 108, + 111, 114, 0, 171, 16, 2, + 0, 0, 80, 1, 0, 0, + 96, 1, 0, 0, 108, 1, + 0, 0, 124, 1, 0, 0, + 108, 1, 0, 0, 25, 2, + 0, 0, 80, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 32, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 255, 255, 255, 255, 2, 0, + 0, 0, 6, 0, 7, 0, + 255, 255, 255, 255, 3, 0, + 0, 0, 8, 0, 9, 0, + 10, 0, 11, 0, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 133, 2, 0, 0, 80, 1, + 0, 0, 69, 1, 0, 0, + 80, 1, 0, 0, 140, 2, + 0, 0, 152, 2, 0, 0, + 168, 2, 0, 0, 180, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 196, 2, 0, 0, + 6, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 8, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 255, 255, + 0, 0, 0, 0, 48, 1, + 0, 0, 180, 1, 0, 0, + 6, 0, 0, 0, 196, 1, + 0, 0, 48, 1, 0, 0, + 12, 2, 0, 0, 64, 2, + 0, 0, 4, 0, 0, 0, + 80, 2, 0, 0, 0, 0, + 0, 0, 128, 2, 0, 0, + 228, 2, 0, 0, 3, 0, + 0, 0, 244, 2, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, 0, 2, 5, 0, 0, 128, 0, 0, 15, 144, 31, 0, 0, 2, 5, 0, 1, 128, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMap.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMap.inc index bafad923d0ad39487eb47b0a32b37f98a1c94e30..5ae2b1daf2333b79d391177cdb3740f8c8b4d3a4 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMap.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMap.inc @@ -38,20 +38,26 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy - dcl t3.xyz + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> + dcl t3.xyz // pin<10,11,12> dcl_2d s0 dcl_cube s1 + +#line 119 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" texld r0, t3, s1 texld r1, t2, s0 - mul r1, r1, t0 + mul r1, r1, t0 // ::color<0,1,2,3> + +#line 121 mad r0.xyz, r0, r1.w, -r1 - mad r0.xyz, t1, r0, r1 + mad r0.xyz, t1, r0, r1 // ::color<0,1,2> + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r2.xyz, c0, r1.w, -r0 - mad r1.xyz, t1.w, r2, r0 - mov oC0, r1 + mad r1.xyz, t1.w, r2, r0 // ApplyFog::color<0,1,2> + mov oC0, r1 // ::PSEnvMap<0,1,2,3> // approximately 8 instruction slots used (2 texture, 6 arithmetic) ps_4_0 @@ -80,17 +86,17 @@ ret const BYTE EnvironmentMapEffect_PSEnvMap[] = { - 68, 88, 66, 67, 153, 99, - 255, 64, 191, 118, 42, 252, - 62, 108, 243, 191, 43, 234, - 97, 92, 1, 0, 0, 0, - 180, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 249, 64, + 205, 226, 17, 105, 132, 168, + 201, 219, 42, 31, 200, 38, + 157, 247, 1, 0, 0, 0, + 136, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 76, 1, 0, 0, 0, 3, - 0, 0, 128, 3, 0, 0, - 65, 111, 110, 57, 20, 1, - 0, 0, 20, 1, 0, 0, - 0, 2, 255, 255, 220, 0, + 32, 4, 0, 0, 212, 5, + 0, 0, 84, 6, 0, 0, + 65, 111, 110, 57, 232, 3, + 0, 0, 232, 3, 0, 0, + 0, 2, 255, 255, 176, 3, 0, 0, 56, 0, 0, 0, 1, 0, 44, 0, 0, 0, 56, 0, 0, 0, 56, 0, @@ -99,143 +105,264 @@ const BYTE EnvironmentMapEffect_PSEnvMap[] = 1, 1, 1, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 255, 255, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 2, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 3, 0, - 7, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 152, 1, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 3, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 2, 0, 228, 176, - 0, 8, 228, 160, 5, 0, + 255, 255, 254, 255, 180, 0, + 68, 66, 85, 71, 40, 0, + 0, 0, 164, 2, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 196, 0, 0, 0, + 14, 0, 0, 0, 204, 0, + 0, 0, 4, 0, 0, 0, + 84, 2, 0, 0, 60, 1, + 0, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 69, 110, 118, 105, + 114, 111, 110, 109, 101, 110, + 116, 77, 97, 112, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 67, 111, 109, 109, + 111, 110, 46, 102, 120, 104, + 0, 171, 40, 0, 0, 0, + 124, 0, 0, 0, 0, 0, + 255, 255, 216, 2, 0, 0, + 0, 0, 255, 255, 228, 2, + 0, 0, 0, 0, 255, 255, + 240, 2, 0, 0, 0, 0, + 255, 255, 252, 2, 0, 0, + 0, 0, 255, 255, 8, 3, + 0, 0, 0, 0, 255, 255, + 20, 3, 0, 0, 119, 0, + 0, 0, 32, 3, 0, 0, + 118, 0, 0, 0, 48, 3, + 0, 0, 118, 0, 0, 0, + 64, 3, 0, 0, 121, 0, + 0, 0, 80, 3, 0, 0, + 121, 0, 0, 0, 100, 3, + 0, 0, 20, 0, 1, 0, + 120, 3, 0, 0, 20, 0, + 1, 0, 140, 3, 0, 0, + 20, 0, 1, 0, 160, 3, + 0, 0, 80, 83, 69, 110, + 118, 77, 97, 112, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 65, 112, 112, 108, 121, 70, + 111, 103, 0, 99, 111, 108, + 111, 114, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 69, 110, 118, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 172, 1, 0, 0, 116, 1, + 0, 0, 180, 1, 0, 0, + 116, 1, 0, 0, 189, 1, + 0, 0, 200, 1, 0, 0, + 216, 1, 0, 0, 228, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 13, 0, 1, 0, + 4, 0, 244, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 2, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 3, 0, 0, 0, 10, 0, + 11, 0, 12, 0, 255, 255, + 0, 0, 0, 0, 60, 1, + 0, 0, 72, 1, 0, 0, + 1, 0, 0, 0, 88, 1, + 0, 0, 100, 1, 0, 0, + 109, 1, 0, 0, 116, 1, + 0, 0, 1, 0, 0, 0, + 132, 1, 0, 0, 0, 0, + 0, 0, 109, 1, 0, 0, + 116, 1, 0, 0, 2, 0, + 0, 0, 144, 1, 0, 0, + 60, 1, 0, 0, 168, 1, + 0, 0, 20, 2, 0, 0, + 4, 0, 0, 0, 36, 2, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 3, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 31, 0, 0, 2, 0, 0, + 0, 152, 1, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 3, 0, 228, 176, + 1, 8, 228, 160, 66, 0, 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 0, - 228, 176, 4, 0, 0, 4, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 255, 128, - 1, 0, 228, 129, 4, 0, - 0, 4, 0, 0, 7, 128, - 1, 0, 228, 176, 0, 0, - 228, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 7, 128, 0, 0, 228, 160, - 1, 0, 255, 128, 0, 0, + 2, 0, 228, 176, 0, 8, + 228, 160, 5, 0, 0, 3, + 1, 0, 15, 128, 1, 0, + 228, 128, 0, 0, 228, 176, + 4, 0, 0, 4, 0, 0, + 7, 128, 0, 0, 228, 128, + 1, 0, 255, 128, 1, 0, 228, 129, 4, 0, 0, 4, - 1, 0, 7, 128, 1, 0, - 255, 176, 2, 0, 228, 128, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 1, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 172, 1, 0, 0, 64, 0, - 0, 0, 107, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 1, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 88, 48, 0, 4, - 0, 112, 16, 0, 1, 0, + 0, 0, 7, 128, 1, 0, + 228, 176, 0, 0, 228, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 2, 0, 7, 128, + 0, 0, 228, 160, 1, 0, + 255, 128, 0, 0, 228, 129, + 4, 0, 0, 4, 1, 0, + 7, 128, 1, 0, 255, 176, + 2, 0, 228, 128, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 1, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 172, 1, + 0, 0, 64, 0, 0, 0, + 107, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 1, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 242, 16, + 88, 48, 0, 4, 0, 112, 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 69, 0, 0, 9, 242, 0, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 70, 126, + 70, 18, 16, 0, 3, 0, + 0, 0, 70, 126, 16, 0, + 1, 0, 0, 0, 0, 96, 16, 0, 1, 0, 0, 0, - 0, 96, 16, 0, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 70, 126, + 69, 0, 0, 9, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 30, + 56, 0, 0, 7, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 114, 0, + 246, 15, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 11, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, 70, 2, 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 18, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 31, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 246, 15, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 128, 65, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 120, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 9, 114, 32, - 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 32, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 120, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 104, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 110, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 110, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 110, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 7, 7, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapNoFog.inc index 3e1db0199f7dcbcae53235744f05cb2b08111a67..eb694541e4d3794815980412b792a99bc3078e43 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapNoFog.inc @@ -31,18 +31,22 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy - dcl t3.xyz + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> + dcl t3.xyz // pin<10,11,12> dcl_2d s0 dcl_cube s1 + +#line 133 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" texld r0, t3, s1 texld r1, t2, s0 - mul r1, r1, t0 + mul r1, r1, t0 // ::color<0,1,2,3> + +#line 135 mad r0.xyz, r0, r1.w, -r1 - mad r1.xyz, t1, r0, r1 - mov oC0, r1 + mad r1.xyz, t1, r0, r1 // ::color<0,1,2> + mov oC0, r1 // ::PSEnvMapNoFog<0,1,2,3> // approximately 6 instruction slots used (2 texture, 4 arithmetic) ps_4_0 @@ -68,138 +72,237 @@ ret const BYTE EnvironmentMapEffect_PSEnvMapNoFog[] = { - 68, 88, 66, 67, 25, 234, - 244, 32, 119, 100, 210, 163, - 96, 109, 215, 177, 129, 6, - 74, 172, 1, 0, 0, 0, - 32, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 78, 221, + 166, 19, 205, 36, 156, 195, + 209, 43, 31, 5, 92, 24, + 27, 50, 1, 0, 0, 0, + 116, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 24, 1, 0, 0, 108, 2, - 0, 0, 236, 2, 0, 0, - 65, 111, 110, 57, 224, 0, - 0, 0, 224, 0, 0, 0, - 0, 2, 255, 255, 180, 0, + 108, 3, 0, 0, 192, 4, + 0, 0, 64, 5, 0, 0, + 65, 111, 110, 57, 52, 3, + 0, 0, 52, 3, 0, 0, + 0, 2, 255, 255, 8, 3, 0, 0, 44, 0, 0, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 2, 0, 36, 0, 0, 0, 44, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 2, - 255, 255, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 2, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 3, 0, - 7, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 152, 1, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 3, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 2, 0, 228, 176, - 0, 8, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 0, - 228, 176, 4, 0, 0, 4, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 255, 128, - 1, 0, 228, 129, 4, 0, - 0, 4, 1, 0, 7, 128, - 1, 0, 228, 176, 0, 0, - 228, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 0, 8, + 255, 255, 254, 255, 148, 0, + 68, 66, 85, 71, 40, 0, + 0, 0, 36, 2, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 124, 0, 0, 0, + 12, 0, 0, 0, 128, 0, + 0, 0, 3, 0, 0, 0, + 232, 1, 0, 0, 224, 0, + 0, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 69, 110, 118, 105, + 114, 111, 110, 109, 101, 110, + 116, 77, 97, 112, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 40, 0, 0, 0, + 0, 0, 255, 255, 88, 2, + 0, 0, 0, 0, 255, 255, + 100, 2, 0, 0, 0, 0, + 255, 255, 112, 2, 0, 0, + 0, 0, 255, 255, 124, 2, + 0, 0, 0, 0, 255, 255, + 136, 2, 0, 0, 0, 0, + 255, 255, 148, 2, 0, 0, + 133, 0, 0, 0, 160, 2, + 0, 0, 132, 0, 0, 0, + 176, 2, 0, 0, 132, 0, + 0, 0, 192, 2, 0, 0, + 135, 0, 0, 0, 208, 2, + 0, 0, 135, 0, 0, 0, + 228, 2, 0, 0, 135, 0, + 0, 0, 248, 2, 0, 0, + 80, 83, 69, 110, 118, 77, + 97, 112, 78, 111, 70, 111, + 103, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 99, 111, 108, 111, + 114, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 69, 110, 118, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 64, 1, 0, 0, 20, 1, + 0, 0, 72, 1, 0, 0, + 20, 1, 0, 0, 81, 1, + 0, 0, 92, 1, 0, 0, + 108, 1, 0, 0, 120, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 13, 0, 1, 0, + 4, 0, 136, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 2, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 3, 0, 0, 0, 10, 0, + 11, 0, 12, 0, 255, 255, + 0, 0, 0, 0, 224, 0, + 0, 0, 240, 0, 0, 0, + 1, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 12, 1, 0, 0, 20, 1, + 0, 0, 2, 0, 0, 0, + 36, 1, 0, 0, 224, 0, + 0, 0, 60, 1, 0, 0, + 168, 1, 0, 0, 4, 0, + 0, 0, 184, 1, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 1, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 2, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 3, 0, 7, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 31, 0, + 0, 2, 0, 0, 0, 152, + 1, 8, 15, 160, 66, 0, + 0, 3, 0, 0, 15, 128, + 3, 0, 228, 176, 1, 8, + 228, 160, 66, 0, 0, 3, + 1, 0, 15, 128, 2, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 76, 1, 0, 0, - 64, 0, 0, 0, 83, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 1, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, + 0, 0, 228, 176, 4, 0, + 0, 4, 0, 0, 7, 128, + 0, 0, 228, 128, 1, 0, + 255, 128, 1, 0, 228, 129, + 4, 0, 0, 4, 1, 0, + 7, 128, 1, 0, 228, 176, + 0, 0, 228, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 1, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 76, 1, + 0, 0, 64, 0, 0, 0, + 83, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 1, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 88, 48, 0, 4, + 0, 112, 16, 0, 1, 0, 0, 0, 85, 85, 0, 0, - 88, 48, 0, 4, 0, 112, - 16, 0, 1, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 3, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 70, 18, 16, 0, 3, 0, - 0, 0, 70, 126, 16, 0, - 1, 0, 0, 0, 0, 96, - 16, 0, 1, 0, 0, 0, - 69, 0, 0, 9, 242, 0, + 98, 16, 0, 3, 114, 16, 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, + 98, 16, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 98, 16, 0, 3, 114, 16, + 16, 0, 3, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 242, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 18, 16, 0, + 3, 0, 0, 0, 70, 126, 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, + 0, 96, 16, 0, 1, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 120, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 104, 0, 0, 0, 1, 0, + 50, 0, 0, 10, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 1, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 120, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 7, 0, 0, - 110, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 104, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 7, + 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 110, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 110, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 7, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecular.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecular.inc index f48dfaf89ebf301628cf97744bc20c99149f14e9..3403f7a2f010af56fbb610fc77d4ca8bb9810217 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecular.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecular.inc @@ -39,22 +39,28 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy - dcl t3.xyz + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> + dcl t3.xyz // pin<10,11,12> dcl_2d s0 dcl_cube s1 + +#line 145 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" texld r0, t3, s1 texld r1, t2, s0 - mul r1, r1, t0 + mul r1, r1, t0 // ::color<0,1,2,3> + +#line 147 mad r0.xyz, r0, r1.w, -r1 - mul r0.w, r0.w, r1.w - mad r0.xyz, t1, r0, r1 - mad r0.xyz, c0, r0.w, r0 + mul r0.w, r0.w, r1.w // ::envmap<3> + mad r0.xyz, t1, r0, r1 // ::color<0,1,2> + mad r0.xyz, c0, r0.w, r0 // ::color<0,1,2> + +#line 20 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mad r2.xyz, c1, r1.w, -r0 - mad r1.xyz, t1.w, r2, r0 - mov oC0, r1 + mad r1.xyz, t1.w, r2, r0 // ApplyFog::color<0,1,2> + mov oC0, r1 // ::PSEnvMapSpecular<0,1,2,3> // approximately 10 instruction slots used (2 texture, 8 arithmetic) ps_4_0 @@ -85,17 +91,17 @@ ret const BYTE EnvironmentMapEffect_PSEnvMapSpecular[] = { - 68, 88, 66, 67, 7, 168, - 166, 133, 74, 140, 213, 194, - 234, 125, 176, 230, 98, 133, - 220, 152, 1, 0, 0, 0, - 40, 4, 0, 0, 4, 0, + 68, 88, 66, 67, 42, 23, + 166, 79, 167, 173, 59, 45, + 21, 59, 137, 29, 86, 104, + 179, 112, 1, 0, 0, 0, + 72, 7, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 124, 1, 0, 0, 116, 3, - 0, 0, 244, 3, 0, 0, - 65, 111, 110, 57, 68, 1, - 0, 0, 68, 1, 0, 0, - 0, 2, 255, 255, 0, 1, + 156, 4, 0, 0, 148, 6, + 0, 0, 20, 7, 0, 0, + 65, 111, 110, 57, 100, 4, + 0, 0, 100, 4, 0, 0, + 0, 2, 255, 255, 32, 4, 0, 0, 68, 0, 0, 0, 2, 0, 44, 0, 0, 0, 68, 0, 0, 0, 68, 0, @@ -106,161 +112,294 @@ const BYTE EnvironmentMapEffect_PSEnvMapSpecular[] = 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 2, - 255, 255, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 2, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 3, 0, - 7, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 152, 1, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 3, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 2, 0, 228, 176, - 0, 8, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 0, - 228, 176, 4, 0, 0, 4, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 255, 128, - 1, 0, 228, 129, 5, 0, - 0, 3, 0, 0, 8, 128, - 0, 0, 255, 128, 1, 0, - 255, 128, 4, 0, 0, 4, - 0, 0, 7, 128, 1, 0, - 228, 176, 0, 0, 228, 128, - 1, 0, 228, 128, 4, 0, + 255, 255, 254, 255, 199, 0, + 68, 66, 85, 71, 40, 0, + 0, 0, 240, 2, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 196, 0, 0, 0, + 16, 0, 0, 0, 204, 0, + 0, 0, 5, 0, 0, 0, + 140, 2, 0, 0, 76, 1, + 0, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 69, 110, 118, 105, + 114, 111, 110, 109, 101, 110, + 116, 77, 97, 112, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 67, 111, 109, 109, + 111, 110, 46, 102, 120, 104, + 0, 171, 40, 0, 0, 0, + 124, 0, 0, 0, 0, 0, + 255, 255, 36, 3, 0, 0, + 0, 0, 255, 255, 48, 3, + 0, 0, 0, 0, 255, 255, + 60, 3, 0, 0, 0, 0, + 255, 255, 72, 3, 0, 0, + 0, 0, 255, 255, 84, 3, + 0, 0, 0, 0, 255, 255, + 96, 3, 0, 0, 145, 0, + 0, 0, 108, 3, 0, 0, + 144, 0, 0, 0, 124, 3, + 0, 0, 144, 0, 0, 0, + 140, 3, 0, 0, 147, 0, + 0, 0, 156, 3, 0, 0, + 145, 0, 0, 0, 176, 3, + 0, 0, 147, 0, 0, 0, + 192, 3, 0, 0, 148, 0, + 0, 0, 212, 3, 0, 0, + 20, 0, 1, 0, 232, 3, + 0, 0, 20, 0, 1, 0, + 252, 3, 0, 0, 20, 0, + 1, 0, 16, 4, 0, 0, + 80, 83, 69, 110, 118, 77, + 97, 112, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 65, 112, 112, 108, 121, 70, + 111, 103, 0, 99, 111, 108, + 111, 114, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 101, 110, 118, 109, + 97, 112, 0, 171, 10, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 112, 105, + 110, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 69, 110, + 118, 67, 111, 111, 114, 100, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 228, 1, 0, 0, + 140, 1, 0, 0, 236, 1, + 0, 0, 140, 1, 0, 0, + 245, 1, 0, 0, 0, 2, + 0, 0, 16, 2, 0, 0, + 28, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 13, 0, + 1, 0, 4, 0, 44, 2, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 0, 0, 0, 0, + 76, 1, 0, 0, 96, 1, + 0, 0, 1, 0, 0, 0, + 112, 1, 0, 0, 124, 1, + 0, 0, 133, 1, 0, 0, + 140, 1, 0, 0, 1, 0, + 0, 0, 156, 1, 0, 0, + 0, 0, 0, 0, 133, 1, + 0, 0, 140, 1, 0, 0, + 3, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 204, 1, 0, 0, 140, 1, + 0, 0, 1, 0, 0, 0, + 212, 1, 0, 0, 76, 1, + 0, 0, 224, 1, 0, 0, + 76, 2, 0, 0, 4, 0, + 0, 0, 92, 2, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 1, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 2, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 3, 0, 7, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 31, 0, + 0, 2, 0, 0, 0, 152, + 1, 8, 15, 160, 66, 0, + 0, 3, 0, 0, 15, 128, + 3, 0, 228, 176, 1, 8, + 228, 160, 66, 0, 0, 3, + 1, 0, 15, 128, 2, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 228, 128, + 0, 0, 228, 176, 4, 0, 0, 4, 0, 0, 7, 128, - 0, 0, 228, 160, 0, 0, - 255, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 7, 128, 1, 0, 228, 160, - 1, 0, 255, 128, 0, 0, - 228, 129, 4, 0, 0, 4, - 1, 0, 7, 128, 1, 0, - 255, 176, 2, 0, 228, 128, 0, 0, 228, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 1, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 240, 1, 0, 0, 64, 0, - 0, 0, 124, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 1, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 88, 48, 0, 4, - 0, 112, 16, 0, 1, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, + 255, 128, 1, 0, 228, 129, + 5, 0, 0, 3, 0, 0, + 8, 128, 0, 0, 255, 128, + 1, 0, 255, 128, 4, 0, + 0, 4, 0, 0, 7, 128, + 1, 0, 228, 176, 0, 0, + 228, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 7, 128, 0, 0, 228, 160, + 0, 0, 255, 128, 0, 0, + 228, 128, 4, 0, 0, 4, + 2, 0, 7, 128, 1, 0, + 228, 160, 1, 0, 255, 128, + 0, 0, 228, 129, 4, 0, + 0, 4, 1, 0, 7, 128, + 1, 0, 255, 176, 2, 0, + 228, 128, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 8, + 15, 128, 1, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 240, 1, 0, 0, + 64, 0, 0, 0, 124, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 242, 16, + 90, 0, 0, 3, 0, 96, 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 3, 0, 0, 0, 70, 126, + 85, 85, 0, 0, 88, 48, + 0, 4, 0, 112, 16, 0, + 1, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 2, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 3, 0, 0, 0, + 70, 126, 16, 0, 1, 0, + 0, 0, 0, 96, 16, 0, + 1, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 2, 0, 0, 0, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, - 0, 96, 16, 0, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 30, + 70, 30, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 114, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 9, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 11, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, 70, 2, 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 11, 114, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 31, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 1, 0, 0, 0, 70, 2, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 120, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 104, 0, 0, 0, 1, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 120, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 15, 0, 0, - 110, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 104, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 15, + 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 110, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 110, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 7, 7, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 7, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecularNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecularNoFog.inc index 332618c40b4036e76c9c67db2455b561181a8253..3fe78386988be2a0a024dc13463b00998511e505 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecularNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_PSEnvMapSpecularNoFog.inc @@ -38,20 +38,24 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy - dcl t3.xyz + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> + dcl t3.xyz // pin<10,11,12> dcl_2d s0 dcl_cube s1 + +#line 160 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" texld r0, t3, s1 texld r1, t2, s0 - mul r1, r1, t0 + mul r1, r1, t0 // ::color<0,1,2,3> + +#line 162 mad r0.xyz, r0, r1.w, -r1 - mul r0.w, r0.w, r1.w - mad r0.xyz, t1, r0, r1 - mad r1.xyz, c0, r0.w, r0 - mov oC0, r1 + mul r0.w, r0.w, r1.w // ::envmap<3> + mad r0.xyz, t1, r0, r1 // ::color<0,1,2> + mad r1.xyz, c0, r0.w, r0 // ::color<0,1,2> + mov oC0, r1 // ::PSEnvMapSpecularNoFog<0,1,2,3> // approximately 8 instruction slots used (2 texture, 6 arithmetic) ps_4_0 @@ -80,17 +84,17 @@ ret const BYTE EnvironmentMapEffect_PSEnvMapSpecularNoFog[] = { - 68, 88, 66, 67, 187, 250, - 231, 5, 121, 80, 60, 173, - 98, 18, 212, 255, 189, 173, - 239, 11, 1, 0, 0, 0, - 164, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 200, 148, + 20, 147, 120, 122, 183, 154, + 225, 8, 208, 18, 28, 171, + 65, 163, 1, 0, 0, 0, + 68, 6, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 72, 1, 0, 0, 240, 2, - 0, 0, 112, 3, 0, 0, - 65, 111, 110, 57, 16, 1, - 0, 0, 16, 1, 0, 0, - 0, 2, 255, 255, 216, 0, + 232, 3, 0, 0, 144, 5, + 0, 0, 16, 6, 0, 0, + 65, 111, 110, 57, 176, 3, + 0, 0, 176, 3, 0, 0, + 0, 2, 255, 255, 120, 3, 0, 0, 56, 0, 0, 0, 1, 0, 44, 0, 0, 0, 56, 0, 0, 0, 56, 0, @@ -99,7 +103,119 @@ const BYTE EnvironmentMapEffect_PSEnvMapSpecularNoFog[] = 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 255, 255, 31, 0, 0, 2, + 255, 255, 254, 255, 167, 0, + 68, 66, 85, 71, 40, 0, + 0, 0, 112, 2, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 124, 0, 0, 0, + 14, 0, 0, 0, 128, 0, + 0, 0, 4, 0, 0, 0, + 32, 2, 0, 0, 240, 0, + 0, 0, 67, 58, 92, 65, + 84, 71, 32, 83, 97, 109, + 112, 108, 101, 32, 68, 101, + 118, 101, 108, 111, 112, 109, + 101, 110, 116, 92, 115, 116, + 95, 100, 101, 118, 92, 75, + 105, 116, 115, 92, 68, 105, + 114, 101, 99, 116, 88, 84, + 75, 92, 83, 114, 99, 92, + 83, 104, 97, 100, 101, 114, + 115, 92, 69, 110, 118, 105, + 114, 111, 110, 109, 101, 110, + 116, 77, 97, 112, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 40, 0, 0, 0, + 0, 0, 255, 255, 164, 2, + 0, 0, 0, 0, 255, 255, + 176, 2, 0, 0, 0, 0, + 255, 255, 188, 2, 0, 0, + 0, 0, 255, 255, 200, 2, + 0, 0, 0, 0, 255, 255, + 212, 2, 0, 0, 0, 0, + 255, 255, 224, 2, 0, 0, + 160, 0, 0, 0, 236, 2, + 0, 0, 159, 0, 0, 0, + 252, 2, 0, 0, 159, 0, + 0, 0, 12, 3, 0, 0, + 162, 0, 0, 0, 28, 3, + 0, 0, 160, 0, 0, 0, + 48, 3, 0, 0, 162, 0, + 0, 0, 64, 3, 0, 0, + 163, 0, 0, 0, 84, 3, + 0, 0, 163, 0, 0, 0, + 104, 3, 0, 0, 80, 83, + 69, 110, 118, 77, 97, 112, + 83, 112, 101, 99, 117, 108, + 97, 114, 78, 111, 70, 111, + 103, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 99, 111, 108, 111, + 114, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 101, 110, 118, 109, + 97, 112, 0, 171, 10, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 112, 105, + 110, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 69, 110, + 118, 67, 111, 111, 114, 100, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 120, 1, 0, 0, + 44, 1, 0, 0, 128, 1, + 0, 0, 44, 1, 0, 0, + 137, 1, 0, 0, 148, 1, + 0, 0, 164, 1, 0, 0, + 176, 1, 0, 0, 5, 0, + 0, 0, 1, 0, 13, 0, + 1, 0, 4, 0, 192, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 1, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 7, 0, 2, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 0, 0, 0, 0, + 240, 0, 0, 0, 8, 1, + 0, 0, 1, 0, 0, 0, + 24, 1, 0, 0, 0, 0, + 0, 0, 36, 1, 0, 0, + 44, 1, 0, 0, 3, 0, + 0, 0, 60, 1, 0, 0, + 0, 0, 0, 0, 96, 1, + 0, 0, 44, 1, 0, 0, + 1, 0, 0, 0, 104, 1, + 0, 0, 240, 0, 0, 0, + 116, 1, 0, 0, 224, 1, + 0, 0, 4, 0, 0, 0, + 240, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, 0, 128, 1, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMap.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMap.inc index 29e263d7871d112fc91a496d5650d88b48e4e891..09c6b0348b3fcd73f62fa65a92ef0e956e36cf12 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMap.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMap.inc @@ -43,43 +43,69 @@ // vs_2_0 def c22, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 67 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" dp3 r0.x, v1, c15 dp3 r0.y, v1, c16 dp3 r0.z, v1, c17 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - dp3 r0.y, -c5, r1 - dp3 r0.z, -c6, r1 - sge r2.xyz, r0, c22.x - mul r0.xyz, r0, r2 + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r0.x, -c4, r1 // ::dotL<0> + dp3 r0.y, -c5, r1 // ::dotL<1> + dp3 r0.z, -c6, r1 // ::dotL<2> + +#line 39 + sge r2.xyz, r0, c22.x // ::zeroL<0,1,2> + mul r0.xyz, r0, r2 // ::diffuse<0,1,2> + +#line 46 mul r2.xyz, r0.y, c8 mad r0.xyw, r0.x, c7.xyzz, r2.xyzz mad r0.xyz, r0.z, c9, r0.xyww - mov r2.xyz, c2 - mad oT0.xyz, r0, r2, c3 - dp4 oPos.z, v0, c20 + mov r2.xyz, c2 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0, r2, c3 // ::VSEnvMap<0,1,2> + +#line 71 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + dp4 oPos.z, v0, c20 // ::VSEnvMap<15> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c11 max r0.x, r0.x, c22.x - min oT1.w, r0.x, c22.y - dp4 r0.x, v0, c12 - dp4 r0.y, v0, c13 - dp4 r0.z, v0, c14 + min oT1.w, r0.x, c22.y // ::VSEnvMap<7> + +#line 65 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + dp4 r0.x, v0, c12 // ::pos_ws<0> + dp4 r0.y, v0, c13 // ::pos_ws<1> + dp4 r0.z, v0, c14 // ::pos_ws<2> add r0.xyz, -r0, c10 - nrm r2.xyz, r0 + nrm r2.xyz, r0 // ::eyeVector<0,1,2> + +#line 81 dp3 r0.x, -r2, r1 add r0.x, r0.x, r0.x - mad oT3.xyz, r1, -r0.x, -r2 - dp4 r0.x, v0, c18 - dp4 r0.y, v0, c19 - dp4 r0.z, v0, c21 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c2.w - mov oT1.xyz, c1.x - mov oT2.xy, v2 + mad oT3.xyz, r1, -r0.x, -r2 // ::VSEnvMap<10,11,12> + +#line 71 + dp4 r0.x, v0, c18 // ::vout<13> + dp4 r0.y, v0, c19 // ::vout<14> + dp4 r0.z, v0, c21 // ::vout<16> + +#line 88 + mad oPos.xy, r0.z, c0, r0 // ::VSEnvMap<13,14> + mov oPos.w, r0.z // ::VSEnvMap<16> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c2.w // ::VSEnvMap<3> + +#line 77 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + mov oT1.xyz, c1.x // ::VSEnvMap<4,5,6> + +#line 90 + mov oT2.xy, v2 // ::VSEnvMap<8,9> // approximately 38 instruction slots used vs_4_0 @@ -133,17 +159,17 @@ ret const BYTE EnvironmentMapEffect_VSEnvMap[] = { - 68, 88, 66, 67, 29, 224, - 82, 121, 115, 234, 195, 135, - 61, 109, 154, 38, 63, 150, - 90, 155, 1, 0, 0, 0, - 196, 8, 0, 0, 4, 0, + 68, 88, 66, 67, 101, 124, + 44, 126, 5, 169, 99, 18, + 224, 136, 152, 151, 55, 62, + 154, 235, 1, 0, 0, 0, + 152, 14, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 224, 2, 0, 0, 172, 7, - 0, 0, 32, 8, 0, 0, - 65, 111, 110, 57, 168, 2, - 0, 0, 168, 2, 0, 0, - 0, 2, 254, 255, 92, 2, + 180, 8, 0, 0, 128, 13, + 0, 0, 244, 13, 0, 0, + 65, 111, 110, 57, 124, 8, + 0, 0, 124, 8, 0, 0, + 0, 2, 254, 255, 48, 8, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -155,356 +181,605 @@ const BYTE EnvironmentMapEffect_VSEnvMap[] = 0, 0, 0, 0, 17, 0, 7, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 22, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 116, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 164, 5, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 8, 0, - 0, 3, 0, 0, 1, 128, - 1, 0, 228, 144, 15, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 16, 0, 228, 160, + 3, 0, 0, 0, 12, 1, + 0, 0, 38, 0, 0, 0, + 24, 1, 0, 0, 10, 0, + 0, 0, 220, 4, 0, 0, + 124, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 69, 110, + 118, 105, 114, 111, 110, 109, + 101, 110, 116, 77, 97, 112, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 40, 0, + 0, 0, 124, 0, 0, 0, + 197, 0, 0, 0, 0, 0, + 255, 255, 216, 5, 0, 0, + 0, 0, 255, 255, 240, 5, + 0, 0, 0, 0, 255, 255, + 252, 5, 0, 0, 0, 0, + 255, 255, 8, 6, 0, 0, + 67, 0, 0, 0, 20, 6, + 0, 0, 67, 0, 0, 0, + 36, 6, 0, 0, 67, 0, + 0, 0, 52, 6, 0, 0, + 67, 0, 0, 0, 68, 6, + 0, 0, 36, 0, 1, 0, + 80, 6, 0, 0, 36, 0, + 1, 0, 96, 6, 0, 0, + 36, 0, 1, 0, 112, 6, + 0, 0, 39, 0, 1, 0, + 128, 6, 0, 0, 41, 0, + 1, 0, 144, 6, 0, 0, + 46, 0, 1, 0, 160, 6, + 0, 0, 46, 0, 1, 0, + 176, 6, 0, 0, 46, 0, + 1, 0, 196, 6, 0, 0, + 46, 0, 1, 0, 216, 6, + 0, 0, 46, 0, 1, 0, + 228, 6, 0, 0, 71, 0, + 0, 0, 248, 6, 0, 0, + 14, 0, 2, 0, 8, 7, + 0, 0, 14, 0, 2, 0, + 24, 7, 0, 0, 14, 0, + 2, 0, 40, 7, 0, 0, + 65, 0, 0, 0, 56, 7, + 0, 0, 65, 0, 0, 0, + 72, 7, 0, 0, 65, 0, + 0, 0, 88, 7, 0, 0, + 66, 0, 0, 0, 104, 7, + 0, 0, 66, 0, 0, 0, + 120, 7, 0, 0, 81, 0, + 0, 0, 132, 7, 0, 0, + 81, 0, 0, 0, 148, 7, + 0, 0, 81, 0, 0, 0, + 164, 7, 0, 0, 71, 0, + 0, 0, 184, 7, 0, 0, + 71, 0, 0, 0, 200, 7, + 0, 0, 71, 0, 0, 0, + 216, 7, 0, 0, 88, 0, + 0, 0, 232, 7, 0, 0, + 88, 0, 0, 0, 252, 7, + 0, 0, 46, 0, 1, 0, + 8, 8, 0, 0, 77, 0, + 0, 0, 20, 8, 0, 0, + 90, 0, 0, 0, 32, 8, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 69, 110, 118, 77, + 97, 112, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 69, 110, 118, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 133, 2, + 0, 0, 144, 2, 0, 0, + 160, 2, 0, 0, 144, 2, + 0, 0, 169, 2, 0, 0, + 180, 2, 0, 0, 196, 2, + 0, 0, 208, 2, 0, 0, + 224, 2, 0, 0, 144, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 236, 2, 0, 0, + 17, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 18, 0, 0, 0, 255, 255, + 255, 255, 15, 0, 255, 255, + 21, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 29, 0, 0, 0, 10, 0, + 11, 0, 12, 0, 255, 255, + 33, 0, 0, 0, 13, 0, + 14, 0, 255, 255, 255, 255, + 34, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 16, 0, + 35, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 36, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 37, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 100, 105, 102, 102, 117, 115, + 101, 0, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 8, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 9, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 10, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 101, 121, + 101, 86, 101, 99, 116, 111, + 114, 0, 171, 171, 26, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 112, 111, + 115, 95, 119, 115, 0, 171, + 22, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 23, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 24, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 24, 4, 0, 0, + 144, 2, 0, 0, 33, 4, + 0, 0, 208, 2, 0, 0, + 169, 2, 0, 0, 180, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 9, 0, 1, 0, + 3, 0, 40, 4, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 118, 111, 117, 116, 0, 171, + 171, 171, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 236, 2, 0, 0, + 30, 0, 0, 0, 13, 0, + 255, 255, 255, 255, 255, 255, + 31, 0, 0, 0, 255, 255, + 14, 0, 255, 255, 255, 255, + 32, 0, 0, 0, 255, 255, + 255, 255, 16, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 72, 2, 0, 0, + 83, 2, 0, 0, 96, 2, + 0, 0, 1, 0, 0, 0, + 112, 2, 0, 0, 0, 0, + 0, 0, 124, 2, 0, 0, + 20, 3, 0, 0, 9, 0, + 0, 0, 36, 3, 0, 0, + 0, 0, 0, 0, 144, 3, + 0, 0, 208, 2, 0, 0, + 1, 0, 0, 0, 152, 3, + 0, 0, 0, 0, 0, 0, + 164, 3, 0, 0, 208, 2, + 0, 0, 3, 0, 0, 0, + 172, 3, 0, 0, 0, 0, + 0, 0, 208, 3, 0, 0, + 208, 2, 0, 0, 1, 0, + 0, 0, 220, 3, 0, 0, + 0, 0, 0, 0, 232, 3, + 0, 0, 144, 2, 0, 0, + 3, 0, 0, 0, 240, 3, + 0, 0, 124, 2, 0, 0, + 20, 4, 0, 0, 64, 4, + 0, 0, 3, 0, 0, 0, + 80, 4, 0, 0, 0, 0, + 0, 0, 116, 4, 0, 0, + 124, 4, 0, 0, 3, 0, + 0, 0, 140, 4, 0, 0, + 0, 0, 0, 0, 176, 4, + 0, 0, 208, 2, 0, 0, + 1, 0, 0, 0, 188, 4, + 0, 0, 0, 0, 0, 0, + 200, 4, 0, 0, 208, 2, + 0, 0, 1, 0, 0, 0, + 208, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 22, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 15, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 4, 128, 1, 0, 228, 144, - 17, 0, 228, 160, 36, 0, - 0, 2, 1, 0, 7, 128, - 0, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 1, 128, - 4, 0, 228, 161, 1, 0, + 2, 128, 1, 0, 228, 144, + 16, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 4, 128, + 1, 0, 228, 144, 17, 0, + 228, 160, 36, 0, 0, 2, + 1, 0, 7, 128, 0, 0, 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 5, 0, + 0, 0, 1, 128, 4, 0, 228, 161, 1, 0, 228, 128, 8, 0, 0, 3, 0, 0, - 4, 128, 6, 0, 228, 161, - 1, 0, 228, 128, 13, 0, + 2, 128, 5, 0, 228, 161, + 1, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 6, 0, 228, 161, 1, 0, + 228, 128, 13, 0, 0, 3, + 2, 0, 7, 128, 0, 0, + 228, 128, 22, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 2, 0, 228, 128, 5, 0, 0, 3, 2, 0, 7, 128, - 0, 0, 228, 128, 22, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 228, 128, - 5, 0, 0, 3, 2, 0, - 7, 128, 0, 0, 85, 128, - 8, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 11, 128, - 0, 0, 0, 128, 7, 0, - 164, 160, 2, 0, 164, 128, - 4, 0, 0, 4, 0, 0, - 7, 128, 0, 0, 170, 128, - 9, 0, 228, 160, 0, 0, - 244, 128, 1, 0, 0, 2, - 2, 0, 7, 128, 2, 0, + 0, 0, 85, 128, 8, 0, 228, 160, 4, 0, 0, 4, - 0, 0, 7, 224, 0, 0, - 228, 128, 2, 0, 228, 128, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 20, 0, + 0, 0, 11, 128, 0, 0, + 0, 128, 7, 0, 164, 160, + 2, 0, 164, 128, 4, 0, + 0, 4, 0, 0, 7, 128, + 0, 0, 170, 128, 9, 0, + 228, 160, 0, 0, 244, 128, + 1, 0, 0, 2, 2, 0, + 7, 128, 2, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 7, 224, 0, 0, 228, 128, + 2, 0, 228, 128, 3, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 11, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 22, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, + 0, 0, 4, 192, 0, 0, + 228, 144, 20, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 11, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, 0, 0, 0, 128, 22, 0, - 85, 160, 9, 0, 0, 3, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 22, 0, 85, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 12, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 13, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 14, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 129, + 10, 0, 228, 160, 36, 0, + 0, 2, 2, 0, 7, 128, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 2, 0, 228, 129, 1, 0, + 228, 128, 2, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 0, 0, 0, 128, + 4, 0, 0, 4, 3, 0, + 7, 224, 1, 0, 228, 128, + 0, 0, 0, 129, 2, 0, + 228, 129, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 12, 0, 228, 160, + 228, 144, 18, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 0, 0, 228, 144, - 13, 0, 228, 160, 9, 0, + 19, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 14, 0, - 228, 160, 2, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 129, 10, 0, 228, 160, - 36, 0, 0, 2, 2, 0, - 7, 128, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 2, 0, 228, 129, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 0, 0, - 0, 128, 4, 0, 0, 4, - 3, 0, 7, 224, 1, 0, - 228, 128, 0, 0, 0, 129, - 2, 0, 228, 129, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 18, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 19, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 21, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 170, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 192, 0, 0, 170, 128, - 1, 0, 0, 2, 0, 0, - 8, 224, 2, 0, 255, 160, - 1, 0, 0, 2, 1, 0, - 7, 224, 1, 0, 0, 160, - 1, 0, 0, 2, 2, 0, - 3, 224, 2, 0, 228, 144, - 255, 255, 0, 0, 83, 72, - 68, 82, 196, 4, 0, 0, - 64, 0, 1, 0, 49, 1, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 0, 0, 228, 144, 21, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 0, 0, 8, 224, + 2, 0, 255, 160, 1, 0, + 0, 2, 1, 0, 7, 224, + 1, 0, 0, 160, 1, 0, + 0, 2, 2, 0, 3, 224, + 2, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 196, 4, 0, 0, 64, 0, + 1, 0, 49, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 3, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 104, 0, 0, 2, + 3, 0, 0, 0, 16, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 3, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 3, 0, 0, 0, - 16, 0, 0, 8, 18, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 16, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 18, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 19, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 18, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 34, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 6, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 9, + 18, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 9, + 34, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 9, + 66, 0, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 29, 0, 0, 10, + 114, 0, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 29, 0, - 0, 10, 114, 0, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 2, 64, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 10, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 10, 114, 0, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 2, 0, 0, 0, 86, 5, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 50, 0, 0, 10, 178, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 1, 0, - 0, 0, 70, 136, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 70, 8, 16, 0, - 2, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 1, 0, 0, 0, 166, 10, + 70, 2, 16, 0, 2, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 2, 0, + 0, 0, 86, 5, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 50, 0, + 0, 10, 178, 0, 16, 0, + 1, 0, 0, 0, 6, 0, 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 3, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, + 70, 136, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 70, 8, 16, 0, 2, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 1, 0, + 0, 0, 166, 10, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 70, 130, + 9, 0, 0, 0, 70, 3, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 11, 114, 32, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 6, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 128, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 6, 130, 32, 16, 0, - 0, 0, 0, 0, 58, 128, + 12, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 1, 0, 0, 0, 6, 128, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 17, 32, - 0, 8, 130, 32, 16, 0, - 1, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 1, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 5, 50, 32, + 1, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 2, 0, 0, 0, 70, 16, 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 2, 0, + 17, 0, 0, 8, 18, 0, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 1, 0, + 34, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 14, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 17, 0, 0, 8, 66, 0, + 0, 0, 15, 0, 0, 0, + 0, 0, 0, 9, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 0, 0, 0, 9, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 10, 0, 0, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 8, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 130, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 32, 16, 0, + 3, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, + 246, 15, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, 70, 2, 16, 128, 65, 0, 0, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 11, 114, 32, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 4, 0, + 34, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 21, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 21, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 4, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 108, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 23, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 108, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 7, 7, 0, 0, 99, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 3, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 79, 83, 71, 78, + 156, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 92, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 99, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 79, 83, - 71, 78, 156, 0, 0, 0, - 5, 0, 0, 0, 8, 0, - 0, 0, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 128, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 134, 0, 0, 0, + 0, 0, 3, 12, 0, 0, + 134, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 3, 12, - 0, 0, 134, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 7, 8, - 0, 0, 143, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 15, 0, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 171 + 3, 0, 0, 0, 3, 0, + 0, 0, 7, 8, 0, 0, + 143, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapFresnel.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapFresnel.inc index 3e4bbeef0668cbde349eef334534f07525df3c4a..9aeb1aa3f4915dad78fc6a4f33039afdba7999e8 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapFresnel.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapFresnel.inc @@ -43,48 +43,74 @@ // vs_2_0 def c22, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 67 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" dp3 r0.x, v1, c15 dp3 r0.y, v1, c16 dp3 r0.z, v1, c17 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - dp3 r0.y, -c5, r1 - dp3 r0.z, -c6, r1 - sge r2.xyz, r0, c22.x - mul r0.xyz, r0, r2 + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r0.x, -c4, r1 // ::dotL<0> + dp3 r0.y, -c5, r1 // ::dotL<1> + dp3 r0.z, -c6, r1 // ::dotL<2> + +#line 39 + sge r2.xyz, r0, c22.x // ::zeroL<0,1,2> + mul r0.xyz, r0, r2 // ::diffuse<0,1,2> + +#line 46 mul r2.xyz, r0.y, c8 mad r0.xyw, r0.x, c7.xyzz, r2.xyzz mad r0.xyz, r0.z, c9, r0.xyww - mov r2.xyz, c2 - mad oT0.xyz, r0, r2, c3 - dp4 oPos.z, v0, c20 - dp4 r0.x, v0, c12 - dp4 r0.y, v0, c13 - dp4 r0.z, v0, c14 + mov r2.xyz, c2 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0, r2, c3 // ::VSEnvMapFresnel<0,1,2> + +#line 71 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + dp4 oPos.z, v0, c20 // ::VSEnvMapFresnel<15> + +#line 65 + dp4 r0.x, v0, c12 // ::pos_ws<0> + dp4 r0.y, v0, c13 // ::pos_ws<1> + dp4 r0.z, v0, c14 // ::pos_ws<2> add r0.xyz, -r0, c10 - nrm r2.xyz, r0 - dp3 r0.x, r2, r1 + nrm r2.xyz, r0 // ::eyeVector<0,1,2> + +#line 55 + dp3 r0.x, r2, r1 // ::viewAngle<0> abs r0.x, r0.x add r0.x, -r0.x, c22.y max r0.x, r0.x, c22.x pow r1.w, r0.x, c1.y - mul oT1.xyz, r1.w, c1.x + mul oT1.xyz, r1.w, c1.x // ::VSEnvMapFresnel<4,5,6> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c11 max r0.x, r0.x, c22.x - min oT1.w, r0.x, c22.y + min oT1.w, r0.x, c22.y // ::VSEnvMapFresnel<7> + +#line 81 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" dp3 r0.x, -r2, r1 add r0.x, r0.x, r0.x - mad oT3.xyz, r1, -r0.x, -r2 - dp4 r0.x, v0, c18 - dp4 r0.y, v0, c19 - dp4 r0.z, v0, c21 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c2.w - mov oT2.xy, v2 + mad oT3.xyz, r1, -r0.x, -r2 // ::VSEnvMapFresnel<10,11,12> + +#line 71 + dp4 r0.x, v0, c18 // ::vout<13> + dp4 r0.y, v0, c19 // ::vout<14> + dp4 r0.z, v0, c21 // ::vout<16> + +#line 95 + mad oPos.xy, r0.z, c0, r0 // ::VSEnvMapFresnel<13,14> + mov oPos.w, r0.z // ::VSEnvMapFresnel<16> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c2.w // ::VSEnvMapFresnel<3> + +#line 97 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + mov oT2.xy, v2 // ::VSEnvMapFresnel<8,9> // approximately 45 instruction slots used vs_4_0 @@ -144,17 +170,17 @@ ret const BYTE EnvironmentMapEffect_VSEnvMapFresnel[] = { - 68, 88, 66, 67, 203, 164, - 21, 36, 185, 120, 53, 136, - 169, 70, 68, 18, 136, 26, - 75, 250, 1, 0, 0, 0, - 188, 9, 0, 0, 4, 0, + 68, 88, 66, 67, 43, 68, + 199, 144, 184, 216, 16, 13, + 30, 112, 195, 220, 61, 145, + 135, 163, 1, 0, 0, 0, + 248, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 48, 3, 0, 0, 164, 8, - 0, 0, 24, 9, 0, 0, - 65, 111, 110, 57, 248, 2, - 0, 0, 248, 2, 0, 0, - 0, 2, 254, 255, 172, 2, + 108, 9, 0, 0, 224, 14, + 0, 0, 84, 15, 0, 0, + 65, 111, 110, 57, 52, 9, + 0, 0, 52, 9, 0, 0, + 0, 2, 254, 255, 232, 8, 0, 0, 76, 0, 0, 0, 3, 0, 36, 0, 0, 0, 72, 0, 0, 0, 72, 0, @@ -166,7 +192,273 @@ const BYTE EnvironmentMapEffect_VSEnvMapFresnel[] = 0, 0, 0, 0, 17, 0, 7, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 142, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 12, 6, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 12, 1, + 0, 0, 43, 0, 0, 0, + 24, 1, 0, 0, 11, 0, + 0, 0, 48, 5, 0, 0, + 164, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 69, 110, + 118, 105, 114, 111, 110, 109, + 101, 110, 116, 77, 97, 112, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 40, 0, + 0, 0, 124, 0, 0, 0, + 197, 0, 0, 0, 0, 0, + 255, 255, 64, 6, 0, 0, + 0, 0, 255, 255, 88, 6, + 0, 0, 0, 0, 255, 255, + 100, 6, 0, 0, 0, 0, + 255, 255, 112, 6, 0, 0, + 67, 0, 0, 0, 124, 6, + 0, 0, 67, 0, 0, 0, + 140, 6, 0, 0, 67, 0, + 0, 0, 156, 6, 0, 0, + 67, 0, 0, 0, 172, 6, + 0, 0, 36, 0, 1, 0, + 184, 6, 0, 0, 36, 0, + 1, 0, 200, 6, 0, 0, + 36, 0, 1, 0, 216, 6, + 0, 0, 39, 0, 1, 0, + 232, 6, 0, 0, 41, 0, + 1, 0, 248, 6, 0, 0, + 46, 0, 1, 0, 8, 7, + 0, 0, 46, 0, 1, 0, + 24, 7, 0, 0, 46, 0, + 1, 0, 44, 7, 0, 0, + 46, 0, 1, 0, 64, 7, + 0, 0, 46, 0, 1, 0, + 76, 7, 0, 0, 71, 0, + 0, 0, 96, 7, 0, 0, + 65, 0, 0, 0, 112, 7, + 0, 0, 65, 0, 0, 0, + 128, 7, 0, 0, 65, 0, + 0, 0, 144, 7, 0, 0, + 66, 0, 0, 0, 160, 7, + 0, 0, 66, 0, 0, 0, + 176, 7, 0, 0, 55, 0, + 0, 0, 188, 7, 0, 0, + 57, 0, 0, 0, 204, 7, + 0, 0, 57, 0, 0, 0, + 216, 7, 0, 0, 57, 0, + 0, 0, 232, 7, 0, 0, + 57, 0, 0, 0, 248, 7, + 0, 0, 57, 0, 0, 0, + 8, 8, 0, 0, 14, 0, + 2, 0, 24, 8, 0, 0, + 14, 0, 2, 0, 40, 8, + 0, 0, 14, 0, 2, 0, + 56, 8, 0, 0, 81, 0, + 0, 0, 72, 8, 0, 0, + 81, 0, 0, 0, 88, 8, + 0, 0, 81, 0, 0, 0, + 104, 8, 0, 0, 71, 0, + 0, 0, 124, 8, 0, 0, + 71, 0, 0, 0, 140, 8, + 0, 0, 71, 0, 0, 0, + 156, 8, 0, 0, 95, 0, + 0, 0, 172, 8, 0, 0, + 95, 0, 0, 0, 192, 8, + 0, 0, 46, 0, 1, 0, + 204, 8, 0, 0, 97, 0, + 0, 0, 216, 8, 0, 0, + 80, 97, 114, 97, 109, 101, + 116, 101, 114, 115, 0, 68, + 105, 102, 102, 117, 115, 101, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 86, 83, + 69, 110, 118, 77, 97, 112, + 70, 114, 101, 115, 110, 101, + 108, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 69, 110, 118, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 180, 2, 0, 0, 188, 2, + 0, 0, 204, 2, 0, 0, + 188, 2, 0, 0, 213, 2, + 0, 0, 224, 2, 0, 0, + 240, 2, 0, 0, 252, 2, + 0, 0, 12, 3, 0, 0, + 188, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 24, 3, + 0, 0, 17, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 18, 0, 0, 0, + 255, 255, 255, 255, 15, 0, + 255, 255, 29, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 32, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 35, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 39, 0, 0, 0, + 13, 0, 14, 0, 255, 255, + 255, 255, 40, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 16, 0, 41, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 42, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 100, 111, + 116, 76, 0, 171, 171, 171, + 8, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 9, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 10, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 101, 121, 101, 86, 101, 99, + 116, 111, 114, 0, 171, 171, + 23, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 19, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 20, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 21, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 118, 105, 101, 119, + 65, 110, 103, 108, 101, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 108, 4, 0, 0, + 188, 2, 0, 0, 117, 4, + 0, 0, 252, 2, 0, 0, + 213, 2, 0, 0, 224, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 9, 0, 1, 0, + 3, 0, 124, 4, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 118, 111, 117, 116, 0, 171, + 171, 171, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 24, 3, 0, 0, + 36, 0, 0, 0, 13, 0, + 255, 255, 255, 255, 255, 255, + 37, 0, 0, 0, 255, 255, + 14, 0, 255, 255, 255, 255, + 38, 0, 0, 0, 255, 255, + 255, 255, 16, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 11, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 112, 2, 0, 0, + 123, 2, 0, 0, 136, 2, + 0, 0, 1, 0, 0, 0, + 152, 2, 0, 0, 0, 0, + 0, 0, 164, 2, 0, 0, + 64, 3, 0, 0, 9, 0, + 0, 0, 80, 3, 0, 0, + 0, 0, 0, 0, 188, 3, + 0, 0, 252, 2, 0, 0, + 1, 0, 0, 0, 196, 3, + 0, 0, 0, 0, 0, 0, + 208, 3, 0, 0, 252, 2, + 0, 0, 3, 0, 0, 0, + 216, 3, 0, 0, 0, 0, + 0, 0, 252, 3, 0, 0, + 252, 2, 0, 0, 1, 0, + 0, 0, 8, 4, 0, 0, + 0, 0, 0, 0, 20, 4, + 0, 0, 188, 2, 0, 0, + 3, 0, 0, 0, 28, 4, + 0, 0, 0, 0, 0, 0, + 64, 4, 0, 0, 76, 4, + 0, 0, 1, 0, 0, 0, + 92, 4, 0, 0, 164, 2, + 0, 0, 104, 4, 0, 0, + 148, 4, 0, 0, 3, 0, + 0, 0, 164, 4, 0, 0, + 0, 0, 0, 0, 200, 4, + 0, 0, 208, 4, 0, 0, + 3, 0, 0, 0, 224, 4, + 0, 0, 0, 0, 0, 0, + 4, 5, 0, 0, 252, 2, + 0, 0, 1, 0, 0, 0, + 16, 5, 0, 0, 0, 0, + 0, 0, 28, 5, 0, 0, + 252, 2, 0, 0, 1, 0, + 0, 0, 36, 5, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 22, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLight.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLight.inc index cf045b4434705dc56b82816a766308dd52a761fb..c151c32c916a7518e0956c9d437b1932ca37634f 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLight.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLight.inc @@ -45,39 +45,65 @@ // vs_2_0 def c18, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 67 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" dp3 r0.x, v1, c11 dp3 r0.y, v1, c12 dp3 r0.z, v1, c13 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - sge r0.y, r0.x, c18.x - mul r0.x, r0.x, r0.y + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r0.x, -c4, r1 // ::dotL<0> + +#line 39 + sge r0.y, r0.x, c18.x // ::zeroL<0> + mul r0.x, r0.x, r0.y // ::diffuse<0> + +#line 46 mul r0.xyz, r0.x, c5 - mov r2.xyz, c2 - mad oT0.xyz, r0, r2, c3 - dp4 oPos.z, v0, c16 + mov r2.xyz, c2 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0, r2, c3 // ::VSEnvMapOneLight<0,1,2> + +#line 71 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + dp4 oPos.z, v0, c16 // ::VSEnvMapOneLight<15> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c7 max r0.x, r0.x, c18.x - min oT1.w, r0.x, c18.y - dp4 r0.x, v0, c8 - dp4 r0.y, v0, c9 - dp4 r0.z, v0, c10 + min oT1.w, r0.x, c18.y // ::VSEnvMapOneLight<7> + +#line 65 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + dp4 r0.x, v0, c8 // ::pos_ws<0> + dp4 r0.y, v0, c9 // ::pos_ws<1> + dp4 r0.z, v0, c10 // ::pos_ws<2> add r0.xyz, -r0, c6 - nrm r2.xyz, r0 + nrm r2.xyz, r0 // ::eyeVector<0,1,2> + +#line 81 dp3 r0.x, -r2, r1 add r0.x, r0.x, r0.x - mad oT3.xyz, r1, -r0.x, -r2 - dp4 r0.x, v0, c14 - dp4 r0.y, v0, c15 - dp4 r0.z, v0, c17 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c2.w - mov oT1.xyz, c1.x - mov oT2.xy, v2 + mad oT3.xyz, r1, -r0.x, -r2 // ::VSEnvMapOneLight<10,11,12> + +#line 71 + dp4 r0.x, v0, c14 // ::vout<13> + dp4 r0.y, v0, c15 // ::vout<14> + dp4 r0.z, v0, c17 // ::vout<16> + +#line 102 + mad oPos.xy, r0.z, c0, r0 // ::VSEnvMapOneLight<13,14> + mov oPos.w, r0.z // ::VSEnvMapOneLight<16> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c2.w // ::VSEnvMapOneLight<3> + +#line 77 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + mov oT1.xyz, c1.x // ::VSEnvMapOneLight<4,5,6> + +#line 104 + mov oT2.xy, v2 // ::VSEnvMapOneLight<8,9> // approximately 34 instruction slots used vs_4_0 @@ -127,17 +153,17 @@ ret const BYTE EnvironmentMapEffect_VSEnvMapOneLight[] = { - 68, 88, 66, 67, 27, 62, - 114, 163, 209, 76, 199, 240, - 199, 93, 202, 210, 161, 55, - 236, 164, 1, 0, 0, 0, - 228, 7, 0, 0, 4, 0, + 68, 88, 66, 67, 47, 235, + 109, 205, 132, 61, 37, 148, + 58, 201, 166, 220, 219, 218, + 33, 237, 1, 0, 0, 0, + 136, 13, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 176, 2, 0, 0, 204, 6, - 0, 0, 64, 7, 0, 0, - 65, 111, 110, 57, 120, 2, - 0, 0, 120, 2, 0, 0, - 0, 2, 254, 255, 20, 2, + 84, 8, 0, 0, 112, 12, + 0, 0, 228, 12, 0, 0, + 65, 111, 110, 57, 28, 8, + 0, 0, 28, 8, 0, 0, + 0, 2, 254, 255, 184, 7, 0, 0, 100, 0, 0, 0, 5, 0, 36, 0, 0, 0, 96, 0, 0, 0, 96, 0, @@ -153,315 +179,556 @@ const BYTE EnvironmentMapEffect_VSEnvMapOneLight[] = 0, 0, 0, 0, 17, 0, 7, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 18, 0, 15, 160, + 0, 2, 254, 255, 254, 255, + 104, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 116, 5, 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 8, 0, - 0, 3, 0, 0, 1, 128, - 1, 0, 228, 144, 11, 0, - 228, 160, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 12, 0, 228, 160, + 3, 0, 0, 0, 12, 1, + 0, 0, 34, 0, 0, 0, + 24, 1, 0, 0, 10, 0, + 0, 0, 172, 4, 0, 0, + 92, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 69, 110, + 118, 105, 114, 111, 110, 109, + 101, 110, 116, 77, 97, 112, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 40, 0, + 0, 0, 124, 0, 0, 0, + 197, 0, 0, 0, 0, 0, + 255, 255, 168, 5, 0, 0, + 0, 0, 255, 255, 192, 5, + 0, 0, 0, 0, 255, 255, + 204, 5, 0, 0, 0, 0, + 255, 255, 216, 5, 0, 0, + 67, 0, 0, 0, 228, 5, + 0, 0, 67, 0, 0, 0, + 244, 5, 0, 0, 67, 0, + 0, 0, 4, 6, 0, 0, + 67, 0, 0, 0, 20, 6, + 0, 0, 36, 0, 1, 0, + 32, 6, 0, 0, 39, 0, + 1, 0, 48, 6, 0, 0, + 41, 0, 1, 0, 64, 6, + 0, 0, 46, 0, 1, 0, + 80, 6, 0, 0, 46, 0, + 1, 0, 96, 6, 0, 0, + 46, 0, 1, 0, 108, 6, + 0, 0, 71, 0, 0, 0, + 128, 6, 0, 0, 14, 0, + 2, 0, 144, 6, 0, 0, + 14, 0, 2, 0, 160, 6, + 0, 0, 14, 0, 2, 0, + 176, 6, 0, 0, 65, 0, + 0, 0, 192, 6, 0, 0, + 65, 0, 0, 0, 208, 6, + 0, 0, 65, 0, 0, 0, + 224, 6, 0, 0, 66, 0, + 0, 0, 240, 6, 0, 0, + 66, 0, 0, 0, 0, 7, + 0, 0, 81, 0, 0, 0, + 12, 7, 0, 0, 81, 0, + 0, 0, 28, 7, 0, 0, + 81, 0, 0, 0, 44, 7, + 0, 0, 71, 0, 0, 0, + 64, 7, 0, 0, 71, 0, + 0, 0, 80, 7, 0, 0, + 71, 0, 0, 0, 96, 7, + 0, 0, 102, 0, 0, 0, + 112, 7, 0, 0, 102, 0, + 0, 0, 132, 7, 0, 0, + 46, 0, 1, 0, 144, 7, + 0, 0, 77, 0, 0, 0, + 156, 7, 0, 0, 104, 0, + 0, 0, 168, 7, 0, 0, + 80, 97, 114, 97, 109, 101, + 116, 101, 114, 115, 0, 68, + 105, 102, 102, 117, 115, 101, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 86, 83, + 69, 110, 118, 77, 97, 112, + 79, 110, 101, 76, 105, 103, + 104, 116, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 69, 110, 118, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 109, 2, + 0, 0, 120, 2, 0, 0, + 136, 2, 0, 0, 120, 2, + 0, 0, 145, 2, 0, 0, + 156, 2, 0, 0, 172, 2, + 0, 0, 184, 2, 0, 0, + 200, 2, 0, 0, 120, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 212, 2, 0, 0, + 13, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 14, 0, 0, 0, 255, 255, + 255, 255, 15, 0, 255, 255, + 17, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 25, 0, 0, 0, 10, 0, + 11, 0, 12, 0, 255, 255, + 29, 0, 0, 0, 13, 0, + 14, 0, 255, 255, 255, 255, + 30, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 16, 0, + 31, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 32, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 33, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 100, 105, 102, 102, 117, 115, + 101, 0, 10, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 8, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 101, 121, + 101, 86, 101, 99, 116, 111, + 114, 0, 171, 171, 22, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 112, 111, + 115, 95, 119, 115, 0, 171, + 18, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 19, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 20, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 232, 3, 0, 0, + 120, 2, 0, 0, 241, 3, + 0, 0, 184, 2, 0, 0, + 145, 2, 0, 0, 156, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 9, 0, 1, 0, + 3, 0, 248, 3, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 118, 111, 117, 116, 0, 171, + 171, 171, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 212, 2, 0, 0, + 26, 0, 0, 0, 13, 0, + 255, 255, 255, 255, 255, 255, + 27, 0, 0, 0, 255, 255, + 14, 0, 255, 255, 255, 255, + 28, 0, 0, 0, 255, 255, + 255, 255, 16, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 9, 0, 0, 0, + 255, 255, 0, 0, 255, 255, + 255, 255, 40, 2, 0, 0, + 51, 2, 0, 0, 64, 2, + 0, 0, 1, 0, 0, 0, + 80, 2, 0, 0, 0, 0, + 0, 0, 92, 2, 0, 0, + 252, 2, 0, 0, 9, 0, + 0, 0, 12, 3, 0, 0, + 0, 0, 0, 0, 120, 3, + 0, 0, 184, 2, 0, 0, + 1, 0, 0, 0, 128, 3, + 0, 0, 0, 0, 0, 0, + 140, 3, 0, 0, 184, 2, + 0, 0, 1, 0, 0, 0, + 148, 3, 0, 0, 0, 0, + 0, 0, 160, 3, 0, 0, + 184, 2, 0, 0, 1, 0, + 0, 0, 172, 3, 0, 0, + 0, 0, 0, 0, 184, 3, + 0, 0, 120, 2, 0, 0, + 3, 0, 0, 0, 192, 3, + 0, 0, 92, 2, 0, 0, + 228, 3, 0, 0, 16, 4, + 0, 0, 3, 0, 0, 0, + 32, 4, 0, 0, 0, 0, + 0, 0, 68, 4, 0, 0, + 76, 4, 0, 0, 3, 0, + 0, 0, 92, 4, 0, 0, + 0, 0, 0, 0, 128, 4, + 0, 0, 184, 2, 0, 0, + 1, 0, 0, 0, 140, 4, + 0, 0, 0, 0, 0, 0, + 152, 4, 0, 0, 184, 2, + 0, 0, 1, 0, 0, 0, + 160, 4, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 18, 0, 15, 160, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 144, 11, 0, 228, 160, 8, 0, 0, 3, 0, 0, - 4, 128, 1, 0, 228, 144, - 13, 0, 228, 160, 36, 0, - 0, 2, 1, 0, 7, 128, - 0, 0, 228, 128, 8, 0, + 2, 128, 1, 0, 228, 144, + 12, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 4, 128, + 1, 0, 228, 144, 13, 0, + 228, 160, 36, 0, 0, 2, + 1, 0, 7, 128, 0, 0, + 228, 128, 8, 0, 0, 3, + 0, 0, 1, 128, 4, 0, + 228, 161, 1, 0, 228, 128, + 13, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 0, 128, + 18, 0, 0, 160, 5, 0, 0, 3, 0, 0, 1, 128, - 4, 0, 228, 161, 1, 0, - 228, 128, 13, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 0, 128, 18, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 0, 0, 85, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 0, 128, 5, 0, - 228, 160, 1, 0, 0, 2, - 2, 0, 7, 128, 2, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 7, 224, 0, 0, - 228, 128, 2, 0, 228, 128, - 3, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 144, 16, 0, + 0, 0, 0, 128, 0, 0, + 85, 128, 5, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 0, 128, 5, 0, 228, 160, + 1, 0, 0, 2, 2, 0, + 7, 128, 2, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 7, 224, 0, 0, 228, 128, + 2, 0, 228, 128, 3, 0, 228, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 7, 0, 228, 160, - 11, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 0, 128, - 18, 0, 0, 160, 10, 0, - 0, 3, 1, 0, 8, 224, + 0, 0, 4, 192, 0, 0, + 228, 144, 16, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 7, 0, 228, 160, 11, 0, + 0, 3, 0, 0, 1, 128, 0, 0, 0, 128, 18, 0, - 85, 160, 9, 0, 0, 3, + 0, 160, 10, 0, 0, 3, + 1, 0, 8, 224, 0, 0, + 0, 128, 18, 0, 85, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 8, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 9, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 228, 144, 10, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 129, + 6, 0, 228, 160, 36, 0, + 0, 2, 2, 0, 7, 128, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 2, 0, 228, 129, 1, 0, + 228, 128, 2, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 0, 0, 0, 128, + 4, 0, 0, 4, 3, 0, + 7, 224, 1, 0, 228, 128, + 0, 0, 0, 129, 2, 0, + 228, 129, 9, 0, 0, 3, 0, 0, 1, 128, 0, 0, - 228, 144, 8, 0, 228, 160, + 228, 144, 14, 0, 228, 160, 9, 0, 0, 3, 0, 0, 2, 128, 0, 0, 228, 144, - 9, 0, 228, 160, 9, 0, + 15, 0, 228, 160, 9, 0, 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 10, 0, - 228, 160, 2, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 129, 6, 0, 228, 160, - 36, 0, 0, 2, 2, 0, - 7, 128, 0, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 1, 128, 2, 0, 228, 129, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 0, 0, - 0, 128, 4, 0, 0, 4, - 3, 0, 7, 224, 1, 0, - 228, 128, 0, 0, 0, 129, - 2, 0, 228, 129, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 144, 14, 0, - 228, 160, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 15, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 128, 0, 0, 228, 144, - 17, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 170, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 192, 0, 0, 170, 128, - 1, 0, 0, 2, 0, 0, - 8, 224, 2, 0, 255, 160, - 1, 0, 0, 2, 1, 0, - 7, 224, 1, 0, 0, 160, - 1, 0, 0, 2, 2, 0, - 3, 224, 2, 0, 228, 144, - 255, 255, 0, 0, 83, 72, - 68, 82, 20, 4, 0, 0, - 64, 0, 1, 0, 5, 1, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 0, 0, 228, 144, 17, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 170, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 170, 128, 1, 0, + 0, 2, 0, 0, 8, 224, + 2, 0, 255, 160, 1, 0, + 0, 2, 1, 0, 7, 224, + 1, 0, 0, 160, 1, 0, + 0, 2, 2, 0, 3, 224, + 2, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 20, 4, 0, 0, 64, 0, + 1, 0, 5, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 3, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 104, 0, 0, 2, + 2, 0, 0, 0, 16, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 3, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 16, 0, 0, 8, 18, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 16, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 18, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 19, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 29, 0, - 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 58, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 7, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 9, + 130, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 29, 0, 0, 7, 18, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 7, 18, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 50, 0, + 0, 11, 114, 32, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 50, 0, 0, 11, 114, 32, + 0, 0, 2, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 130, 32, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 3, 0, + 58, 128, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 17, 32, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 54, 0, - 0, 6, 114, 32, 16, 0, - 1, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 2, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 17, 0, 0, 8, 18, 0, + 114, 32, 16, 0, 1, 0, + 0, 0, 6, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 2, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 17, 0, + 0, 8, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 17, 0, 0, 8, 34, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 17, 0, 0, 8, - 34, 0, 16, 0, 1, 0, + 66, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 17, 0, - 0, 8, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 0, 0, 0, 9, 114, 0, + 15, 0, 0, 0, 0, 0, + 0, 9, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, + 0, 0, 16, 0, 0, 8, + 130, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 8, 130, 0, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 128, 65, 0, 0, 0, 0, 0, 0, 0, 70, 2, 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 114, 32, 16, 0, - 3, 0, 0, 0, 70, 2, + 1, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, + 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 246, 15, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 17, 0, 0, 8, 18, 32, + 70, 142, 32, 0, 0, 0, + 0, 0, 20, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 21, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 4, 0, + 66, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 21, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, 4, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 22, 0, 0, 0, - 17, 0, 0, 8, 130, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 23, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 108, 0, + 0, 0, 23, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 108, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 92, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 79, 83, 71, 78, 156, 0, + 0, 0, 5, 0, 0, 0, + 8, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 128, 0, 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 99, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 79, 83, 71, 78, - 156, 0, 0, 0, 5, 0, - 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 128, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 134, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 12, 0, 0, - 134, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 7, 8, 0, 0, - 143, 0, 0, 0, 0, 0, + 3, 12, 0, 0, 134, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 0, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 7, 8, 0, 0, 143, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLightFresnel.inc b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLightFresnel.inc index 7eb6fe0466d25564e34d62d9518fbac508022683..f2353110c3920892ec5c5ad5356374a0fabb2c17 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLightFresnel.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/EnvironmentMapEffect_VSEnvMapOneLightFresnel.inc @@ -45,44 +45,70 @@ // vs_2_0 def c18, 0, 1, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + +#line 67 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" dp3 r0.x, v1, c11 dp3 r0.y, v1, c12 dp3 r0.z, v1, c13 - nrm r1.xyz, r0 - dp3 r0.x, -c4, r1 - sge r0.y, r0.x, c18.x - mul r0.x, r0.x, r0.y + nrm r1.xyz, r0 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r0.x, -c4, r1 // ::dotL<0> + +#line 39 + sge r0.y, r0.x, c18.x // ::zeroL<0> + mul r0.x, r0.x, r0.y // ::diffuse<0> + +#line 46 mul r0.xyz, r0.x, c5 - mov r2.xyz, c2 - mad oT0.xyz, r0, r2, c3 - dp4 oPos.z, v0, c16 - dp4 r0.x, v0, c8 - dp4 r0.y, v0, c9 - dp4 r0.z, v0, c10 + mov r2.xyz, c2 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r0, r2, c3 // ::VSEnvMapOneLightFresnel<0,1,2> + +#line 71 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + dp4 oPos.z, v0, c16 // ::VSEnvMapOneLightFresnel<15> + +#line 65 + dp4 r0.x, v0, c8 // ::pos_ws<0> + dp4 r0.y, v0, c9 // ::pos_ws<1> + dp4 r0.z, v0, c10 // ::pos_ws<2> add r0.xyz, -r0, c6 - nrm r2.xyz, r0 - dp3 r0.x, r2, r1 + nrm r2.xyz, r0 // ::eyeVector<0,1,2> + +#line 55 + dp3 r0.x, r2, r1 // ::viewAngle<0> abs r0.x, r0.x add r0.x, -r0.x, c18.y max r0.x, r0.x, c18.x pow r1.w, r0.x, c1.y - mul oT1.xyz, r1.w, c1.x + mul oT1.xyz, r1.w, c1.x // ::VSEnvMapOneLightFresnel<4,5,6> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, v0, c7 max r0.x, r0.x, c18.x - min oT1.w, r0.x, c18.y + min oT1.w, r0.x, c18.y // ::VSEnvMapOneLightFresnel<7> + +#line 81 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" dp3 r0.x, -r2, r1 add r0.x, r0.x, r0.x - mad oT3.xyz, r1, -r0.x, -r2 - dp4 r0.x, v0, c14 - dp4 r0.y, v0, c15 - dp4 r0.z, v0, c17 - mad oPos.xy, r0.z, c0, r0 - mov oPos.w, r0.z - mov oT0.w, c2.w - mov oT2.xy, v2 + mad oT3.xyz, r1, -r0.x, -r2 // ::VSEnvMapOneLightFresnel<10,11,12> + +#line 71 + dp4 r0.x, v0, c14 // ::vout<13> + dp4 r0.y, v0, c15 // ::vout<14> + dp4 r0.z, v0, c17 // ::vout<16> + +#line 109 + mad oPos.xy, r0.z, c0, r0 // ::VSEnvMapOneLightFresnel<13,14> + mov oPos.w, r0.z // ::VSEnvMapOneLightFresnel<16> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c2.w // ::VSEnvMapOneLightFresnel<3> + +#line 111 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\EnvironmentMapEffect.fx" + mov oT2.xy, v2 // ::VSEnvMapOneLightFresnel<8,9> // approximately 41 instruction slots used vs_4_0 @@ -138,17 +164,17 @@ ret const BYTE EnvironmentMapEffect_VSEnvMapOneLightFresnel[] = { - 68, 88, 66, 67, 244, 71, - 81, 193, 116, 157, 204, 48, - 101, 140, 234, 141, 158, 237, - 10, 203, 1, 0, 0, 0, - 220, 8, 0, 0, 4, 0, + 68, 88, 66, 67, 60, 1, + 73, 10, 62, 42, 102, 216, + 224, 107, 79, 152, 202, 62, + 59, 32, 1, 0, 0, 0, + 232, 14, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 0, 3, 0, 0, 196, 7, - 0, 0, 56, 8, 0, 0, - 65, 111, 110, 57, 200, 2, - 0, 0, 200, 2, 0, 0, - 0, 2, 254, 255, 100, 2, + 12, 9, 0, 0, 208, 13, + 0, 0, 68, 14, 0, 0, + 65, 111, 110, 57, 212, 8, + 0, 0, 212, 8, 0, 0, + 0, 2, 254, 255, 112, 8, 0, 0, 100, 0, 0, 0, 5, 0, 36, 0, 0, 0, 96, 0, 0, 0, 96, 0, @@ -164,7 +190,265 @@ const BYTE EnvironmentMapEffect_VSEnvMapOneLightFresnel[] = 0, 0, 0, 0, 17, 0, 7, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 130, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 220, 5, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 12, 1, + 0, 0, 39, 0, 0, 0, + 24, 1, 0, 0, 11, 0, + 0, 0, 0, 5, 0, 0, + 132, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 69, 110, + 118, 105, 114, 111, 110, 109, + 101, 110, 116, 77, 97, 112, + 69, 102, 102, 101, 99, 116, + 46, 102, 120, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 76, 105, + 103, 104, 116, 105, 110, 103, + 46, 102, 120, 104, 0, 67, + 58, 92, 65, 84, 71, 32, + 83, 97, 109, 112, 108, 101, + 32, 68, 101, 118, 101, 108, + 111, 112, 109, 101, 110, 116, + 92, 115, 116, 95, 100, 101, + 118, 92, 75, 105, 116, 115, + 92, 68, 105, 114, 101, 99, + 116, 88, 84, 75, 92, 83, + 114, 99, 92, 83, 104, 97, + 100, 101, 114, 115, 92, 67, + 111, 109, 109, 111, 110, 46, + 102, 120, 104, 0, 40, 0, + 0, 0, 124, 0, 0, 0, + 197, 0, 0, 0, 0, 0, + 255, 255, 16, 6, 0, 0, + 0, 0, 255, 255, 40, 6, + 0, 0, 0, 0, 255, 255, + 52, 6, 0, 0, 0, 0, + 255, 255, 64, 6, 0, 0, + 67, 0, 0, 0, 76, 6, + 0, 0, 67, 0, 0, 0, + 92, 6, 0, 0, 67, 0, + 0, 0, 108, 6, 0, 0, + 67, 0, 0, 0, 124, 6, + 0, 0, 36, 0, 1, 0, + 136, 6, 0, 0, 39, 0, + 1, 0, 152, 6, 0, 0, + 41, 0, 1, 0, 168, 6, + 0, 0, 46, 0, 1, 0, + 184, 6, 0, 0, 46, 0, + 1, 0, 200, 6, 0, 0, + 46, 0, 1, 0, 212, 6, + 0, 0, 71, 0, 0, 0, + 232, 6, 0, 0, 65, 0, + 0, 0, 248, 6, 0, 0, + 65, 0, 0, 0, 8, 7, + 0, 0, 65, 0, 0, 0, + 24, 7, 0, 0, 66, 0, + 0, 0, 40, 7, 0, 0, + 66, 0, 0, 0, 56, 7, + 0, 0, 55, 0, 0, 0, + 68, 7, 0, 0, 57, 0, + 0, 0, 84, 7, 0, 0, + 57, 0, 0, 0, 96, 7, + 0, 0, 57, 0, 0, 0, + 112, 7, 0, 0, 57, 0, + 0, 0, 128, 7, 0, 0, + 57, 0, 0, 0, 144, 7, + 0, 0, 14, 0, 2, 0, + 160, 7, 0, 0, 14, 0, + 2, 0, 176, 7, 0, 0, + 14, 0, 2, 0, 192, 7, + 0, 0, 81, 0, 0, 0, + 208, 7, 0, 0, 81, 0, + 0, 0, 224, 7, 0, 0, + 81, 0, 0, 0, 240, 7, + 0, 0, 71, 0, 0, 0, + 4, 8, 0, 0, 71, 0, + 0, 0, 20, 8, 0, 0, + 71, 0, 0, 0, 36, 8, + 0, 0, 109, 0, 0, 0, + 52, 8, 0, 0, 109, 0, + 0, 0, 72, 8, 0, 0, + 46, 0, 1, 0, 84, 8, + 0, 0, 111, 0, 0, 0, + 96, 8, 0, 0, 80, 97, + 114, 97, 109, 101, 116, 101, + 114, 115, 0, 68, 105, 102, + 102, 117, 115, 101, 67, 111, + 108, 111, 114, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 86, 83, 69, 110, + 118, 77, 97, 112, 79, 110, + 101, 76, 105, 103, 104, 116, + 70, 114, 101, 115, 110, 101, + 108, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 69, 110, 118, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 156, 2, 0, 0, 164, 2, + 0, 0, 180, 2, 0, 0, + 164, 2, 0, 0, 189, 2, + 0, 0, 200, 2, 0, 0, + 216, 2, 0, 0, 228, 2, + 0, 0, 244, 2, 0, 0, + 164, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 0, 3, + 0, 0, 13, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 14, 0, 0, 0, + 255, 255, 255, 255, 15, 0, + 255, 255, 25, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 28, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 31, 0, 0, 0, + 10, 0, 11, 0, 12, 0, + 255, 255, 35, 0, 0, 0, + 13, 0, 14, 0, 255, 255, + 255, 255, 36, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 16, 0, 37, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 38, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 10, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 100, 111, + 116, 76, 0, 171, 171, 171, + 8, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 101, 121, 101, 86, 101, 99, + 116, 111, 114, 0, 171, 171, + 19, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 15, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 16, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 17, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 118, 105, 101, 119, + 65, 110, 103, 108, 101, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 118, 105, 110, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 78, 111, 114, 109, 97, + 108, 0, 60, 4, 0, 0, + 164, 2, 0, 0, 69, 4, + 0, 0, 228, 2, 0, 0, + 189, 2, 0, 0, 200, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 9, 0, 1, 0, + 3, 0, 76, 4, 0, 0, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 118, 111, 117, 116, 0, 171, + 171, 171, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 0, 3, 0, 0, + 32, 0, 0, 0, 13, 0, + 255, 255, 255, 255, 255, 255, + 33, 0, 0, 0, 255, 255, + 14, 0, 255, 255, 255, 255, + 34, 0, 0, 0, 255, 255, + 255, 255, 16, 0, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 9, 0, 0, 0, + 255, 255, 0, 0, 255, 255, + 255, 255, 80, 2, 0, 0, + 91, 2, 0, 0, 104, 2, + 0, 0, 1, 0, 0, 0, + 120, 2, 0, 0, 0, 0, + 0, 0, 132, 2, 0, 0, + 40, 3, 0, 0, 9, 0, + 0, 0, 56, 3, 0, 0, + 0, 0, 0, 0, 164, 3, + 0, 0, 228, 2, 0, 0, + 1, 0, 0, 0, 172, 3, + 0, 0, 0, 0, 0, 0, + 184, 3, 0, 0, 228, 2, + 0, 0, 1, 0, 0, 0, + 192, 3, 0, 0, 0, 0, + 0, 0, 204, 3, 0, 0, + 228, 2, 0, 0, 1, 0, + 0, 0, 216, 3, 0, 0, + 0, 0, 0, 0, 228, 3, + 0, 0, 164, 2, 0, 0, + 3, 0, 0, 0, 236, 3, + 0, 0, 0, 0, 0, 0, + 16, 4, 0, 0, 28, 4, + 0, 0, 1, 0, 0, 0, + 44, 4, 0, 0, 132, 2, + 0, 0, 56, 4, 0, 0, + 100, 4, 0, 0, 3, 0, + 0, 0, 116, 4, 0, 0, + 0, 0, 0, 0, 152, 4, + 0, 0, 160, 4, 0, 0, + 3, 0, 0, 0, 176, 4, + 0, 0, 0, 0, 0, 0, + 212, 4, 0, 0, 228, 2, + 0, 0, 1, 0, 0, 0, + 224, 4, 0, 0, 0, 0, + 0, 0, 236, 4, 0, 0, + 228, 2, 0, 0, 1, 0, + 0, 0, 244, 4, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 18, 0, 15, 160, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedPixelLighting.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedPixelLighting.inc index 5eba921b908d706bd19176ea3aa944de357dc76a..b881d6b536f2e3fb0449981a3f0f79b452a097a6 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedPixelLighting.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedPixelLighting.inc @@ -38,54 +38,94 @@ // ps_2_0 def c14, 1, 0, 0, 0 - dcl t0.xyz - dcl t1 - dcl t2.xyz - dcl t3 + dcl t0.xyz // pin<0,1> + dcl t1 // pin<2,3,4,5> + dcl t2.xyz // pin<6,7,8> + dcl t3 // pin<9,10,11,12> dcl_2d s0 + +#line 233 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" texld r0, t0, s0 - nrm r1.xyz, t2 - dp3 r2.x, -c3, r1 - dp3 r2.y, -c4, r1 - dp3 r2.z, -c5, r1 - cmp r3.xyz, r2, c14.x, c14.y - mul r2.xyz, r2, r3 + +#line 236 + nrm r1.xyz, t2 // ::worldNormal<0,1,2> + +#line 36 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp3 r2.x, -c3, r1 // ::dotL<0> + dp3 r2.y, -c4, r1 // ::dotL<1> + dp3 r2.z, -c5, r1 // ::dotL<2> + +#line 39 + cmp r3.xyz, r2, c14.x, c14.y // ::zeroL<0,1,2> + mul r2.xyz, r2, r3 // ::diffuse<0,1,2> + +#line 235 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" add r4.xyz, -t1, c12 dp3 r1.w, r4, r4 rsq r1.w, r1.w + +#line 33 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mad r5.xyz, r4, r1.w, -c3 - nrm r6.xyz, r5 - dp3 r5.x, r6, r1 + nrm r6.xyz, r5 // ::halfVectors<0,1,2> + +#line 37 + dp3 r5.x, r6, r1 // ::dotH<0> + +#line 33 mad r6.xyz, r4, r1.w, -c4 mad r4.xyz, r4, r1.w, -c5 - nrm r7.xyz, r4 - dp3 r5.z, r7, r1 - nrm r4.xyz, r6 - dp3 r5.y, r4, r1 + nrm r7.xyz, r4 // ::halfVectors<6,7,8> + +#line 37 + dp3 r5.z, r7, r1 // ::dotH<2> + +#line 33 + nrm r4.xyz, r6 // ::halfVectors<3,4,5> + +#line 37 + dp3 r5.y, r4, r1 // ::dotH<1> + +#line 42 mul r1.xyz, r3, r5 cmp r1.xyz, r5, r1, c14.y log r3.x, r1.x log r3.y, r1.y log r3.z, r1.z mul r1.xyz, r3, c2.w - exp r2.w, r1.y + exp r2.w, r1.y // ::specular<1> + +#line 47 mul r3.xyz, r2.w, c10 - exp r2.w, r1.x - exp r3.w, r1.z + +#line 42 + exp r2.w, r1.x // ::specular<0> + exp r3.w, r1.z // ::specular<2> + +#line 47 mad r1.xyz, r2.w, c9, r3 mad r1.xyz, r3.w, c11, r1 - mul r1.xyz, r1, c2 - mul r0, r0, t3 + mul r1.xyz, r1, c2 // ::result<3,4,5> + +#line 233 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mul r0, r0, t3 // ::color<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" mul r1.xyz, r0.w, r1 + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mul r3.xyz, r2.y, c7 mad r3.xyz, r2.x, c6, r3 mad r2.xyz, r2.z, c8, r3 - mov r3.xyz, c0 - mad r2.xyz, r2, r3, c1 - mad r1.xyz, r0, r2, r1 + mov r3.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad r2.xyz, r2, r3, c1 // ::result<0,1,2> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r1.xyz, r0, r2, r1 // AddSpecular::color<0,1,2> + +#line 20 mad r2.xyz, c13, r0.w, -r1 - mad r0.xyz, t1.w, r2, r1 - mov oC0, r0 + mad r0.xyz, t1.w, r2, r1 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSSkinnedPixelLighting<0,1,2,3> // approximately 51 instruction slots used (1 texture, 50 arithmetic) ps_4_0 @@ -151,17 +191,17 @@ ret const BYTE SkinnedEffect_PSSkinnedPixelLighting[] = { - 68, 88, 66, 67, 129, 164, - 9, 179, 158, 143, 193, 218, - 75, 230, 209, 15, 16, 58, - 111, 78, 1, 0, 0, 0, - 128, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 167, 255, + 138, 170, 18, 129, 91, 123, + 243, 168, 145, 228, 204, 13, + 248, 166, 1, 0, 0, 0, + 24, 17, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 120, 3, 0, 0, 204, 9, - 0, 0, 76, 10, 0, 0, - 65, 111, 110, 57, 64, 3, - 0, 0, 64, 3, 0, 0, - 0, 2, 255, 255, 12, 3, + 16, 10, 0, 0, 100, 16, + 0, 0, 228, 16, 0, 0, + 65, 111, 110, 57, 216, 9, + 0, 0, 216, 9, 0, 0, + 0, 2, 255, 255, 164, 9, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -169,434 +209,716 @@ const BYTE SkinnedEffect_PSSkinnedPixelLighting[] = 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 81, 0, - 0, 5, 14, 0, 15, 160, - 0, 0, 128, 63, 0, 0, + 0, 2, 255, 255, 254, 255, + 165, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 104, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 7, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 3, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 176, 8, 0, 0, 3, - 2, 0, 1, 128, 3, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 49, 0, 0, 0, + 20, 1, 0, 0, 14, 0, + 0, 0, 80, 5, 0, 0, + 208, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 156, 6, + 0, 0, 0, 0, 255, 255, + 180, 6, 0, 0, 0, 0, + 255, 255, 192, 6, 0, 0, + 0, 0, 255, 255, 204, 6, + 0, 0, 0, 0, 255, 255, + 216, 6, 0, 0, 0, 0, + 255, 255, 228, 6, 0, 0, + 233, 0, 0, 0, 240, 6, + 0, 0, 236, 0, 0, 0, + 0, 7, 0, 0, 36, 0, + 1, 0, 12, 7, 0, 0, + 36, 0, 1, 0, 28, 7, + 0, 0, 36, 0, 1, 0, + 44, 7, 0, 0, 39, 0, + 1, 0, 60, 7, 0, 0, + 41, 0, 1, 0, 80, 7, + 0, 0, 235, 0, 0, 0, + 96, 7, 0, 0, 235, 0, + 0, 0, 112, 7, 0, 0, + 235, 0, 0, 0, 128, 7, + 0, 0, 33, 0, 1, 0, + 140, 7, 0, 0, 33, 0, + 1, 0, 160, 7, 0, 0, + 37, 0, 1, 0, 172, 7, + 0, 0, 33, 0, 1, 0, + 188, 7, 0, 0, 33, 0, + 1, 0, 208, 7, 0, 0, + 33, 0, 1, 0, 228, 7, + 0, 0, 37, 0, 1, 0, + 240, 7, 0, 0, 33, 0, + 1, 0, 0, 8, 0, 0, + 37, 0, 1, 0, 12, 8, + 0, 0, 42, 0, 1, 0, + 28, 8, 0, 0, 42, 0, + 1, 0, 44, 8, 0, 0, + 42, 0, 1, 0, 64, 8, + 0, 0, 42, 0, 1, 0, + 76, 8, 0, 0, 42, 0, + 1, 0, 88, 8, 0, 0, + 42, 0, 1, 0, 100, 8, + 0, 0, 42, 0, 1, 0, + 116, 8, 0, 0, 47, 0, + 1, 0, 128, 8, 0, 0, + 42, 0, 1, 0, 144, 8, + 0, 0, 42, 0, 1, 0, + 156, 8, 0, 0, 47, 0, + 1, 0, 168, 8, 0, 0, + 47, 0, 1, 0, 188, 8, + 0, 0, 47, 0, 1, 0, + 208, 8, 0, 0, 233, 0, + 0, 0, 224, 8, 0, 0, + 26, 0, 2, 0, 240, 8, + 0, 0, 46, 0, 1, 0, + 0, 9, 0, 0, 46, 0, + 1, 0, 16, 9, 0, 0, + 46, 0, 1, 0, 36, 9, + 0, 0, 46, 0, 1, 0, + 56, 9, 0, 0, 46, 0, + 1, 0, 68, 9, 0, 0, + 26, 0, 2, 0, 88, 9, + 0, 0, 20, 0, 2, 0, + 108, 9, 0, 0, 20, 0, + 2, 0, 128, 9, 0, 0, + 20, 0, 2, 0, 148, 9, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 43, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 80, 83, 83, 107, 105, 110, + 110, 101, 100, 80, 105, 120, + 101, 108, 76, 105, 103, 104, + 116, 105, 110, 103, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 65, 112, + 112, 108, 121, 70, 111, 103, + 0, 99, 111, 108, 111, 114, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 65, 100, 100, 83, 112, 101, + 99, 117, 108, 97, 114, 0, + 45, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 38, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 100, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 100, 111, 116, 72, 0, 171, + 171, 171, 18, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 22, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 24, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 8, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 9, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 10, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 104, 97, + 108, 102, 86, 101, 99, 116, + 111, 114, 115, 0, 3, 0, + 3, 0, 3, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 21, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 23, 0, 0, 0, + 3, 0, 4, 0, 5, 0, + 255, 255, 112, 105, 110, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 87, 83, 0, 78, 111, 114, + 109, 97, 108, 87, 83, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 20, 4, 0, 0, + 32, 4, 0, 0, 48, 4, + 0, 0, 20, 3, 0, 0, + 59, 4, 0, 0, 92, 3, + 0, 0, 68, 4, 0, 0, + 20, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 13, 0, + 1, 0, 4, 0, 76, 4, + 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 2, 0, 0, 0, + 2, 0, 3, 0, 4, 0, + 5, 0, 3, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 114, 101, 115, 117, + 108, 116, 0, 83, 112, 101, + 99, 117, 108, 97, 114, 0, + 68, 4, 0, 0, 92, 3, + 0, 0, 179, 4, 0, 0, + 92, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 6, 0, + 1, 0, 2, 0, 188, 4, + 0, 0, 37, 0, 0, 0, + 3, 0, 4, 0, 5, 0, + 255, 255, 44, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 31, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 1, 0, 33, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 34, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 2, 0, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 122, 101, 114, 111, + 76, 0, 171, 171, 11, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 156, 2, + 0, 0, 167, 2, 0, 0, + 180, 2, 0, 0, 1, 0, + 0, 0, 196, 2, 0, 0, + 0, 0, 0, 0, 208, 2, + 0, 0, 232, 2, 0, 0, + 1, 0, 0, 0, 248, 2, + 0, 0, 4, 3, 0, 0, + 13, 3, 0, 0, 20, 3, + 0, 0, 1, 0, 0, 0, + 36, 3, 0, 0, 48, 3, + 0, 0, 13, 3, 0, 0, + 20, 3, 0, 0, 1, 0, + 0, 0, 60, 3, 0, 0, + 0, 0, 0, 0, 13, 3, + 0, 0, 20, 3, 0, 0, + 1, 0, 0, 0, 72, 3, + 0, 0, 0, 0, 0, 0, + 84, 3, 0, 0, 92, 3, + 0, 0, 1, 0, 0, 0, + 108, 3, 0, 0, 0, 0, + 0, 0, 120, 3, 0, 0, + 92, 3, 0, 0, 3, 0, + 0, 0, 128, 3, 0, 0, + 0, 0, 0, 0, 164, 3, + 0, 0, 92, 3, 0, 0, + 3, 0, 0, 0, 172, 3, + 0, 0, 0, 0, 0, 0, + 208, 3, 0, 0, 220, 3, + 0, 0, 3, 0, 0, 0, + 236, 3, 0, 0, 208, 2, + 0, 0, 16, 4, 0, 0, + 108, 4, 0, 0, 4, 0, + 0, 0, 124, 4, 0, 0, + 0, 0, 0, 0, 172, 4, + 0, 0, 204, 4, 0, 0, + 2, 0, 0, 0, 220, 4, + 0, 0, 0, 0, 0, 0, + 244, 4, 0, 0, 92, 3, + 0, 0, 3, 0, 0, 0, + 0, 5, 0, 0, 0, 0, + 0, 0, 36, 5, 0, 0, + 92, 3, 0, 0, 1, 0, + 0, 0, 48, 5, 0, 0, + 0, 0, 0, 0, 60, 5, + 0, 0, 92, 3, 0, 0, + 1, 0, 0, 0, 68, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 14, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 3, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 176, + 0, 8, 228, 160, 36, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 176, 8, 0, + 0, 3, 2, 0, 1, 128, + 3, 0, 228, 161, 1, 0, + 228, 128, 8, 0, 0, 3, + 2, 0, 2, 128, 4, 0, 228, 161, 1, 0, 228, 128, 8, 0, 0, 3, 2, 0, - 2, 128, 4, 0, 228, 161, - 1, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 4, 128, - 5, 0, 228, 161, 1, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 7, 128, 2, 0, - 228, 128, 14, 0, 0, 160, - 14, 0, 85, 160, 5, 0, - 0, 3, 2, 0, 7, 128, - 2, 0, 228, 128, 3, 0, - 228, 128, 2, 0, 0, 3, - 4, 0, 7, 128, 1, 0, - 228, 177, 12, 0, 228, 160, - 8, 0, 0, 3, 1, 0, - 8, 128, 4, 0, 228, 128, - 4, 0, 228, 128, 7, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 4, 0, - 0, 4, 5, 0, 7, 128, - 4, 0, 228, 128, 1, 0, - 255, 128, 3, 0, 228, 161, - 36, 0, 0, 2, 6, 0, - 7, 128, 5, 0, 228, 128, - 8, 0, 0, 3, 5, 0, - 1, 128, 6, 0, 228, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 6, 0, 7, 128, - 4, 0, 228, 128, 1, 0, - 255, 128, 4, 0, 228, 161, - 4, 0, 0, 4, 4, 0, + 4, 128, 5, 0, 228, 161, + 1, 0, 228, 128, 88, 0, + 0, 4, 3, 0, 7, 128, + 2, 0, 228, 128, 14, 0, + 0, 160, 14, 0, 85, 160, + 5, 0, 0, 3, 2, 0, + 7, 128, 2, 0, 228, 128, + 3, 0, 228, 128, 2, 0, + 0, 3, 4, 0, 7, 128, + 1, 0, 228, 177, 12, 0, + 228, 160, 8, 0, 0, 3, + 1, 0, 8, 128, 4, 0, + 228, 128, 4, 0, 228, 128, + 7, 0, 0, 2, 1, 0, + 8, 128, 1, 0, 255, 128, + 4, 0, 0, 4, 5, 0, 7, 128, 4, 0, 228, 128, - 1, 0, 255, 128, 5, 0, + 1, 0, 255, 128, 3, 0, 228, 161, 36, 0, 0, 2, - 7, 0, 7, 128, 4, 0, + 6, 0, 7, 128, 5, 0, 228, 128, 8, 0, 0, 3, - 5, 0, 4, 128, 7, 0, + 5, 0, 1, 128, 6, 0, 228, 128, 1, 0, 228, 128, - 36, 0, 0, 2, 4, 0, - 7, 128, 6, 0, 228, 128, - 8, 0, 0, 3, 5, 0, - 2, 128, 4, 0, 228, 128, - 1, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 3, 0, 228, 128, 5, 0, - 228, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 5, 0, + 4, 0, 0, 4, 6, 0, + 7, 128, 4, 0, 228, 128, + 1, 0, 255, 128, 4, 0, + 228, 161, 4, 0, 0, 4, + 4, 0, 7, 128, 4, 0, + 228, 128, 1, 0, 255, 128, + 5, 0, 228, 161, 36, 0, + 0, 2, 7, 0, 7, 128, + 4, 0, 228, 128, 8, 0, + 0, 3, 5, 0, 4, 128, + 7, 0, 228, 128, 1, 0, + 228, 128, 36, 0, 0, 2, + 4, 0, 7, 128, 6, 0, + 228, 128, 8, 0, 0, 3, + 5, 0, 2, 128, 4, 0, 228, 128, 1, 0, 228, 128, - 14, 0, 85, 160, 15, 0, - 0, 2, 3, 0, 1, 128, - 1, 0, 0, 128, 15, 0, - 0, 2, 3, 0, 2, 128, - 1, 0, 85, 128, 15, 0, - 0, 2, 3, 0, 4, 128, - 1, 0, 170, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 3, 0, 228, 128, 2, 0, - 255, 160, 14, 0, 0, 2, - 2, 0, 8, 128, 1, 0, - 85, 128, 5, 0, 0, 3, - 3, 0, 7, 128, 2, 0, - 255, 128, 10, 0, 228, 160, - 14, 0, 0, 2, 2, 0, - 8, 128, 1, 0, 0, 128, - 14, 0, 0, 2, 3, 0, - 8, 128, 1, 0, 170, 128, - 4, 0, 0, 4, 1, 0, - 7, 128, 2, 0, 255, 128, - 9, 0, 228, 160, 3, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 7, 128, 3, 0, - 255, 128, 11, 0, 228, 160, - 1, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 7, 128, - 1, 0, 228, 128, 2, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 3, 0, 228, 176, 5, 0, 0, 3, 1, 0, - 7, 128, 0, 0, 255, 128, - 1, 0, 228, 128, 5, 0, + 7, 128, 3, 0, 228, 128, + 5, 0, 228, 128, 88, 0, + 0, 4, 1, 0, 7, 128, + 5, 0, 228, 128, 1, 0, + 228, 128, 14, 0, 85, 160, + 15, 0, 0, 2, 3, 0, + 1, 128, 1, 0, 0, 128, + 15, 0, 0, 2, 3, 0, + 2, 128, 1, 0, 85, 128, + 15, 0, 0, 2, 3, 0, + 4, 128, 1, 0, 170, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 3, 0, 228, 128, + 2, 0, 255, 160, 14, 0, + 0, 2, 2, 0, 8, 128, + 1, 0, 85, 128, 5, 0, 0, 3, 3, 0, 7, 128, - 2, 0, 85, 128, 7, 0, - 228, 160, 4, 0, 0, 4, - 3, 0, 7, 128, 2, 0, - 0, 128, 6, 0, 228, 160, + 2, 0, 255, 128, 10, 0, + 228, 160, 14, 0, 0, 2, + 2, 0, 8, 128, 1, 0, + 0, 128, 14, 0, 0, 2, + 3, 0, 8, 128, 1, 0, + 170, 128, 4, 0, 0, 4, + 1, 0, 7, 128, 2, 0, + 255, 128, 9, 0, 228, 160, 3, 0, 228, 128, 4, 0, - 0, 4, 2, 0, 7, 128, - 2, 0, 170, 128, 8, 0, + 0, 4, 1, 0, 7, 128, + 3, 0, 255, 128, 11, 0, + 228, 160, 1, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 1, 0, 228, 128, + 2, 0, 228, 160, 5, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 3, 0, + 228, 176, 5, 0, 0, 3, + 1, 0, 7, 128, 0, 0, + 255, 128, 1, 0, 228, 128, + 5, 0, 0, 3, 3, 0, + 7, 128, 2, 0, 85, 128, + 7, 0, 228, 160, 4, 0, + 0, 4, 3, 0, 7, 128, + 2, 0, 0, 128, 6, 0, 228, 160, 3, 0, 228, 128, - 1, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 160, 4, 0, 0, 4, 2, 0, - 7, 128, 2, 0, 228, 128, - 3, 0, 228, 128, 1, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 7, 128, 0, 0, - 228, 128, 2, 0, 228, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 2, 0, 7, 128, - 13, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 129, - 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 255, 176, - 2, 0, 228, 128, 1, 0, + 7, 128, 2, 0, 170, 128, + 8, 0, 228, 160, 3, 0, 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 76, 6, - 0, 0, 64, 0, 0, 0, - 147, 1, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 114, 16, - 16, 0, 2, 0, 0, 0, - 98, 16, 0, 3, 242, 16, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 0, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, + 3, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 2, 0, 7, 128, 2, 0, + 228, 128, 3, 0, 228, 128, + 1, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 0, 0, 228, 128, 2, 0, + 228, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 2, 0, + 7, 128, 13, 0, 228, 160, + 0, 0, 255, 128, 1, 0, + 228, 129, 4, 0, 0, 4, + 0, 0, 7, 128, 1, 0, + 255, 176, 2, 0, 228, 128, + 1, 0, 228, 128, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 76, 6, 0, 0, 64, 0, + 0, 0, 147, 1, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 0, 0, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 2, 0, + 0, 0, 98, 16, 0, 3, + 242, 16, 16, 0, 3, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 4, 0, 0, 0, 0, 0, + 0, 9, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 1, 0, 0, 0, 70, 18, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 2, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 1, 0, 0, 0, 58, 0, 16, 0, 1, 0, 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, + 2, 0, 0, 0, 246, 15, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 18, 16, 0, 2, 0, 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 1, 0, - 0, 0, 70, 18, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 2, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 18, - 16, 0, 2, 0, 0, 0, - 16, 0, 0, 7, 18, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 18, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, 50, 0, 0, 11, 114, 0, - 16, 0, 0, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 50, 0, 0, 11, + 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 0, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 3, 0, - 0, 0, 246, 15, 16, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 34, 0, - 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, + 3, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 16, 0, 0, 7, - 66, 0, 16, 0, 1, 0, + 34, 0, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, + 3, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, - 52, 0, 0, 10, 114, 0, + 16, 0, 0, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 7, 66, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 52, 0, 0, 10, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 9, 18, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 16, 0, 0, 9, 34, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 16, 0, 0, 9, 66, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 29, 0, 0, 10, 114, 0, + 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 18, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 9, 34, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 9, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 1, 0, 0, 10, 114, 0, 16, 0, 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, + 16, 0, 2, 0, 0, 0, 2, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 10, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, + 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 47, 0, 0, 5, - 114, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, + 2, 0, 0, 0, 47, 0, + 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 246, 143, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 25, 0, 0, 5, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 2, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 50, 0, - 0, 10, 178, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 136, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 8, 16, 0, 2, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 70, 3, - 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, + 0, 0, 246, 143, 32, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 30, - 16, 0, 3, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 56, 0, + 0, 0, 25, 0, 0, 5, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 86, 5, - 16, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 50, 0, 0, 10, 178, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 1, 0, + 16, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, 0, 0, 70, 136, 32, 0, - 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 70, 8, 16, 0, - 3, 0, 0, 0, 50, 0, + 2, 0, 0, 0, 50, 0, 0, 10, 114, 0, 16, 0, - 1, 0, 0, 0, 166, 10, - 16, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 70, 3, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 70, 3, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 2, 0, 0, 0, 70, 16, + 16, 0, 0, 0, 0, 0, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 242, 0, 16, 0, + 2, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 30, 16, 0, 3, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 246, 15, + 0, 0, 0, 0, 246, 15, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 128, 65, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 3, 0, 0, 0, + 86, 5, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 50, 0, 0, 10, + 178, 0, 16, 0, 1, 0, + 0, 0, 6, 0, 16, 0, + 1, 0, 0, 0, 70, 136, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 70, 8, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 10, 114, 0, + 16, 0, 1, 0, 0, 0, + 166, 10, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 70, 3, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 9, 114, 32, + 70, 130, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 9, 114, 0, 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 1, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 32, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 120, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, + 50, 0, 0, 11, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 9, + 114, 32, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 2, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 120, 0, 0, 0, 4, 0, + 0, 0, 8, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 0, 0, + 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 104, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 7, 7, 0, 0, 113, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 104, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 15, 15, 0, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 67, 79, 76, 79, 82, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 7, 7, 0, 0, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 15, 0, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 67, 79, 76, + 79, 82, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLighting.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLighting.inc index 18e05529f5191e990ea5df283800bdb226d878ad..36006399ec3d9dd5db43b7e72245703849c30dc2 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLighting.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLighting.inc @@ -36,16 +36,22 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 210 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" texld r0, t2, s0 - mul r0, r0, t0 - mad r1.xyz, t1, r0.w, r0 + mul r0, r0, t0 // ::color<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r1.xyz, t1, r0.w, r0 // AddSpecular::color<0,1,2> + +#line 20 mad r2.xyz, c0, r0.w, -r1 - mad r0.xyz, t1.w, r2, r1 - mov oC0, r0 + mad r0.xyz, t1.w, r2, r1 // ApplyFog::color<0,1,2> + mov oC0, r0 // ::PSSkinnedVertexLighting<0,1,2,3> // approximately 6 instruction slots used (1 texture, 5 arithmetic) ps_4_0 @@ -69,17 +75,17 @@ ret const BYTE SkinnedEffect_PSSkinnedVertexLighting[] = { - 68, 88, 66, 67, 168, 121, - 145, 162, 145, 142, 85, 167, - 84, 43, 205, 136, 70, 33, - 64, 152, 1, 0, 0, 0, - 232, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 136, 182, + 245, 134, 252, 10, 70, 248, + 112, 36, 89, 190, 185, 222, + 52, 160, 1, 0, 0, 0, + 144, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 12, 1, 0, 0, 76, 2, - 0, 0, 180, 2, 0, 0, - 65, 111, 110, 57, 212, 0, - 0, 0, 212, 0, 0, 0, - 0, 2, 255, 255, 160, 0, + 180, 3, 0, 0, 244, 4, + 0, 0, 92, 5, 0, 0, + 65, 111, 110, 57, 124, 3, + 0, 0, 124, 3, 0, 0, + 0, 2, 255, 255, 72, 3, 0, 0, 52, 0, 0, 0, 1, 0, 40, 0, 0, 0, 52, 0, 0, 0, 52, 0, @@ -87,110 +93,224 @@ const BYTE SkinnedEffect_PSSkinnedVertexLighting[] = 52, 0, 0, 0, 0, 0, 0, 0, 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, + 0, 2, 255, 255, 254, 255, + 169, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 120, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 10, 0, 0, 0, + 196, 0, 0, 0, 5, 0, + 0, 0, 20, 2, 0, 0, + 20, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 67, 111, 109, + 109, 111, 110, 46, 102, 120, + 104, 0, 40, 0, 0, 0, + 117, 0, 0, 0, 0, 0, + 255, 255, 172, 2, 0, 0, + 0, 0, 255, 255, 184, 2, + 0, 0, 0, 0, 255, 255, + 196, 2, 0, 0, 0, 0, + 255, 255, 208, 2, 0, 0, + 210, 0, 0, 0, 220, 2, + 0, 0, 210, 0, 0, 0, + 236, 2, 0, 0, 26, 0, + 1, 0, 252, 2, 0, 0, + 20, 0, 1, 0, 16, 3, + 0, 0, 20, 0, 1, 0, + 36, 3, 0, 0, 20, 0, + 1, 0, 56, 3, 0, 0, + 80, 83, 83, 107, 105, 110, + 110, 101, 100, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 65, 112, + 112, 108, 121, 70, 111, 103, + 0, 99, 111, 108, 111, 114, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 65, 100, 100, 83, 112, 101, + 99, 117, 108, 97, 114, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 5, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 105, 110, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 156, 1, 0, 0, 88, 1, + 0, 0, 164, 1, 0, 0, + 88, 1, 0, 0, 173, 1, + 0, 0, 184, 1, 0, 0, + 5, 0, 0, 0, 1, 0, + 10, 0, 1, 0, 3, 0, + 200, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 1, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 7, 0, 2, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 20, 1, 0, 0, + 44, 1, 0, 0, 1, 0, + 0, 0, 60, 1, 0, 0, + 72, 1, 0, 0, 81, 1, + 0, 0, 88, 1, 0, 0, + 1, 0, 0, 0, 104, 1, + 0, 0, 116, 1, 0, 0, + 81, 1, 0, 0, 88, 1, + 0, 0, 1, 0, 0, 0, + 128, 1, 0, 0, 0, 0, + 0, 0, 81, 1, 0, 0, + 88, 1, 0, 0, 1, 0, + 0, 0, 140, 1, 0, 0, + 20, 1, 0, 0, 152, 1, + 0, 0, 224, 1, 0, 0, + 3, 0, 0, 0, 240, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 2, 0, 228, 176, + 0, 8, 228, 160, 5, 0, 0, 3, 0, 0, 15, 128, - 2, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 4, 0, 0, 4, 1, 0, - 7, 128, 1, 0, 228, 176, - 0, 0, 255, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 7, 128, 0, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 129, 4, 0, - 0, 4, 0, 0, 7, 128, - 1, 0, 255, 176, 2, 0, - 228, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 56, 1, 0, 0, - 64, 0, 0, 0, 78, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 90, 0, 0, 3, 0, 96, + 0, 0, 228, 128, 0, 0, + 228, 176, 4, 0, 0, 4, + 1, 0, 7, 128, 1, 0, + 228, 176, 0, 0, 255, 128, + 0, 0, 228, 128, 4, 0, + 0, 4, 2, 0, 7, 128, + 0, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 129, + 4, 0, 0, 4, 0, 0, + 7, 128, 1, 0, 255, 176, + 2, 0, 228, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 56, 1, + 0, 0, 64, 0, 0, 0, + 78, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, + 98, 16, 0, 3, 242, 16, + 16, 0, 1, 0, 0, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 98, 16, - 0, 3, 242, 16, 16, 0, - 1, 0, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 242, 0, + 50, 0, 0, 9, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 18, + 70, 18, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 11, 114, 0, 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 50, 0, - 0, 11, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 32, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 1, 0, 0, 0, 70, 2, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 31, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 96, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 96, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 80, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 80, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 86, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 15, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLightingNoFog.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLightingNoFog.inc index a722008b0fba9cdbcad0e872291921752bd60a52..568a23043021391b9e69d4b552e6ec18324dac86 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLightingNoFog.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_PSSkinnedVertexLightingNoFog.inc @@ -29,14 +29,18 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1 - dcl t2.xy + dcl t0 // pin<0,1,2,3> + dcl t1 // pin<4,5,6,7> + dcl t2.xy // pin<8,9> dcl_2d s0 + +#line 222 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" texld r0, t2, s0 - mul r0, r0, t0 - mad r0.xyz, t1, r0.w, r0 - mov oC0, r0 + mul r0, r0, t0 // ::color<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" + mad r0.xyz, t1, r0.w, r0 // AddSpecular::color<0,1,2> + mov oC0, r0 // ::PSSkinnedVertexLightingNoFog<0,1,2,3> // approximately 4 instruction slots used (1 texture, 3 arithmetic) ps_4_0 @@ -57,104 +61,209 @@ ret const BYTE SkinnedEffect_PSSkinnedVertexLightingNoFog[] = { - 68, 88, 66, 67, 107, 144, - 128, 78, 118, 75, 88, 150, - 203, 179, 206, 252, 188, 119, - 149, 100, 1, 0, 0, 0, - 84, 2, 0, 0, 4, 0, + 68, 88, 66, 67, 106, 186, + 183, 34, 48, 16, 115, 237, + 74, 230, 89, 81, 140, 120, + 101, 85, 1, 0, 0, 0, + 204, 4, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 216, 0, 0, 0, 184, 1, - 0, 0, 32, 2, 0, 0, - 65, 111, 110, 57, 160, 0, - 0, 0, 160, 0, 0, 0, - 0, 2, 255, 255, 120, 0, + 80, 3, 0, 0, 48, 4, + 0, 0, 152, 4, 0, 0, + 65, 111, 110, 57, 24, 3, + 0, 0, 24, 3, 0, 0, + 0, 2, 255, 255, 240, 2, 0, 0, 40, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 1, 0, 36, 0, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 2, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, + 0, 2, 255, 255, 254, 255, + 157, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 72, 2, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 188, 0, + 0, 0, 8, 0, 0, 0, + 196, 0, 0, 0, 4, 0, + 0, 0, 248, 1, 0, 0, + 4, 1, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 67, 111, 109, + 109, 111, 110, 46, 102, 120, + 104, 0, 40, 0, 0, 0, + 117, 0, 0, 0, 0, 0, + 255, 255, 124, 2, 0, 0, + 0, 0, 255, 255, 136, 2, + 0, 0, 0, 0, 255, 255, + 148, 2, 0, 0, 0, 0, + 255, 255, 160, 2, 0, 0, + 222, 0, 0, 0, 172, 2, + 0, 0, 222, 0, 0, 0, + 188, 2, 0, 0, 26, 0, + 1, 0, 204, 2, 0, 0, + 26, 0, 1, 0, 224, 2, + 0, 0, 80, 83, 83, 107, + 105, 110, 110, 101, 100, 86, + 101, 114, 116, 101, 120, 76, + 105, 103, 104, 116, 105, 110, + 103, 78, 111, 70, 111, 103, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 65, 100, 100, 83, + 112, 101, 99, 117, 108, 97, + 114, 0, 99, 111, 108, 111, + 114, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 5, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 112, 105, 110, 0, + 68, 105, 102, 102, 117, 115, + 101, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 128, 1, 0, 0, + 84, 1, 0, 0, 136, 1, + 0, 0, 84, 1, 0, 0, + 145, 1, 0, 0, 156, 1, + 0, 0, 5, 0, 0, 0, + 1, 0, 10, 0, 1, 0, + 3, 0, 172, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 1, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 7, 0, + 2, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 4, 1, + 0, 0, 36, 1, 0, 0, + 1, 0, 0, 0, 52, 1, + 0, 0, 64, 1, 0, 0, + 76, 1, 0, 0, 84, 1, + 0, 0, 1, 0, 0, 0, + 100, 1, 0, 0, 0, 0, + 0, 0, 76, 1, 0, 0, + 84, 1, 0, 0, 1, 0, + 0, 0, 112, 1, 0, 0, + 4, 1, 0, 0, 124, 1, + 0, 0, 196, 1, 0, 0, + 3, 0, 0, 0, 212, 1, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 2, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 2, 0, 228, 176, + 0, 8, 228, 160, 5, 0, 0, 3, 0, 0, 15, 128, - 2, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 4, 0, 0, 4, 0, 0, - 7, 128, 1, 0, 228, 176, - 0, 0, 255, 128, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 216, 0, - 0, 0, 64, 0, 0, 0, - 54, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 242, 16, 16, 0, 0, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 0, 228, 128, 0, 0, + 228, 176, 4, 0, 0, 4, + 0, 0, 7, 128, 1, 0, + 228, 176, 0, 0, 255, 128, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 216, 0, 0, 0, 64, 0, + 0, 0, 54, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 246, 15, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 96, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 32, 16, 0, + 0, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 96, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 80, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 80, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 7, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 7, 0, 0, - 86, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 67, 79, 76, 79, + 82, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightFourBones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightFourBones.inc index 7009b63dea8d70b75f2d8db53fac05c4d514dff9..fa07bdf3bea846928c29f675eab94a4ff008eb4c 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightFourBones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightFourBones.inc @@ -42,66 +42,104 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0, v3, c243.x mova a0, r0.yxzw mul r1, v4.y, c26[a0.x] - mad r1, c26[a0.y], v4.x, r1 - mad r0, c26[a0.z], v4.z, r1 - mad r0, c26[a0.w], v4.w, r0 - dp3 r1.x, v1, r0 - dp4 r0.x, v0, r0 + mad r1, c26[a0.y], v4.x, r1 // ::skinning<0,3,6,9> + mad r0, c26[a0.z], v4.z, r1 // ::skinning<0,3,6,9> + mad r0, c26[a0.w], v4.w, r0 // ::skinning<0,3,6,9> + +#line 56 + dp3 r1.x, v1, r0 // Skin::vin<4> + dp4 r0.x, v0, r0 // Skin::vin<0> + +#line 52 mul r2, v4.y, c27[a0.x] mul r3, v4.y, c28[a0.x] - mad r3, c28[a0.y], v4.x, r3 - mad r2, c27[a0.y], v4.x, r2 - mad r2, c27[a0.z], v4.z, r2 - mad r3, c28[a0.z], v4.z, r3 - mad r3, c28[a0.w], v4.w, r3 - mad r2, c27[a0.w], v4.w, r2 - dp3 r1.y, v1, r2 - dp4 r0.y, v0, r2 - dp3 r1.z, v1, r3 - dp4 r0.z, v0, r3 + mad r3, c28[a0.y], v4.x, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.y], v4.x, r2 // ::skinning<1,4,7,10> + mad r2, c27[a0.z], v4.z, r2 // ::skinning<1,4,7,10> + mad r3, c28[a0.z], v4.z, r3 // ::skinning<2,5,8,11> + mad r3, c28[a0.w], v4.w, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.w], v4.w, r2 // ::skinning<1,4,7,10> + +#line 56 + dp3 r1.y, v1, r2 // Skin::vin<5> + dp4 r0.y, v0, r2 // Skin::vin<1> + dp3 r1.z, v1, r3 // Skin::vin<6> + dp4 r0.z, v0, r3 // Skin::vin<2> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r2.x, r1, c19 dp3 r2.y, r1, c20 dp3 r2.z, r1, c21 - nrm r1.xyz, r2 - dp3 r1.w, -c3, r1 - sge r2.x, r1.w, c243.y - mul r1.w, r1.w, r2.x + nrm r1.xyz, r2 // ::worldNormal<0,1,2> + +#line 36 + dp3 r1.w, -c3, r1 // ::dotL<0> + +#line 39 + sge r2.x, r1.w, c243.y // ::zeroL<0> + mul r1.w, r1.w, r2.x // ::diffuse<0> + +#line 46 mul r2.yzw, r1.w, c6.xxyz - mov r3.xyz, c0 - mad oT0.xyz, r2.yzww, r3, c1 + mov r3.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r2.yzww, r3, c1 // ::VSSkinnedOneLightFourBones<0,1,2> + +#line 57 mov r0.w, v0.w - dp4 r3.x, r0, c15 - dp4 r3.y, r0, c16 - dp4 r3.z, r0, c17 + dp4 r3.x, r0, c15 // ::pos_ws<0> + dp4 r3.y, r0, c16 // ::pos_ws<1> + dp4 r3.z, r0, c17 // ::pos_ws<2> add r2.yzw, -r3.xxyz, c12.xxyz - nrm r3.xyz, r2.yzww + nrm r3.xyz, r2.yzww // ::eyeVector<0,1,2> + +#line 33 add r2.yzw, r3.xxyz, -c3.xxyz - nrm r3.xyz, r2.yzww - dp3 r1.x, r3, r1 + nrm r3.xyz, r2.yzww // ::halfVectors<0,1,2> + +#line 37 + dp3 r1.x, r3, r1 // ::dotH<0> + +#line 42 max r1.x, r1.x, c243.y mul r1.x, r2.x, r1.x - pow r2.x, r1.x, c2.w + pow r2.x, r1.x, c2.w // ::specular<0> + +#line 47 mul r1.xyz, r2.x, c9 - mul oT1.xyz, r1, c2 - dp4 oPos.z, r0, c24 + mul oT1.xyz, r1, c2 // ::VSSkinnedOneLightFourBones<4,5,6> + +#line 63 + dp4 oPos.z, r0, c24 // ::VSSkinnedOneLightFourBones<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r1.x, r0, c14 max r1.x, r1.x, c243.y - min oT1.w, r1.x, c243.z - dp4 r1.x, r0, c22 - dp4 r1.y, r0, c23 - dp4 r0.x, r0, c25 - mad oPos.xy, r0.x, c242, r1 - mov oPos.w, r0.x - mov oT0.w, c0.w - mov oT2.xy, v2 + min oT1.w, r1.x, c243.z // ::VSSkinnedOneLightFourBones<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r1.x, r0, c22 // ::vout<0> + dp4 r1.y, r0, c23 // ::vout<1> + dp4 r0.x, r0, c25 // ::vout<3> + +#line 141 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.x, c242, r1 // ::VSSkinnedOneLightFourBones<10,11> + mov oPos.w, r0.x // ::VSSkinnedOneLightFourBones<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c0.w // ::VSSkinnedOneLightFourBones<3> + +#line 145 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mov oT2.xy, v2 // ::VSSkinnedOneLightFourBones<8,9> // approximately 63 instruction slots used vs_4_0 @@ -179,17 +217,17 @@ ret const BYTE SkinnedEffect_VSSkinnedOneLightFourBones[] = { - 68, 88, 66, 67, 63, 163, - 154, 32, 18, 207, 16, 79, - 179, 141, 167, 248, 204, 90, - 92, 25, 1, 0, 0, 0, - 172, 13, 0, 0, 4, 0, + 68, 88, 66, 67, 203, 46, + 72, 203, 82, 54, 50, 161, + 103, 172, 86, 28, 64, 194, + 240, 31, 1, 0, 0, 0, + 36, 22, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 112, 4, 0, 0, 96, 12, - 0, 0, 32, 13, 0, 0, - 65, 111, 110, 57, 56, 4, - 0, 0, 56, 4, 0, 0, - 0, 2, 254, 255, 4, 4, + 232, 12, 0, 0, 216, 20, + 0, 0, 152, 21, 0, 0, + 65, 111, 110, 57, 176, 12, + 0, 0, 176, 12, 0, 0, + 0, 2, 254, 255, 124, 12, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -197,436 +235,782 @@ const BYTE SkinnedEffect_VSSkinnedOneLightFourBones[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 243, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 3, 0, 228, 144, 243, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 15, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 4, 0, - 85, 144, 26, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 1, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 170, 176, 4, 0, 170, 144, - 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 255, 176, 4, 0, 255, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 1, 128, - 1, 0, 228, 144, 0, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, - 5, 0, 0, 4, 2, 0, - 15, 128, 4, 0, 85, 144, - 27, 32, 228, 160, 0, 0, - 0, 176, 5, 0, 0, 4, - 3, 0, 15, 128, 4, 0, - 85, 144, 28, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 2, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 170, 176, 4, 0, 170, 144, - 2, 0, 228, 128, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 170, 176, 4, 0, 170, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 255, 176, 4, 0, 255, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 255, 176, 4, 0, 255, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 2, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 2, 0, 228, 128, + 0, 2, 254, 255, 254, 255, + 29, 2, 68, 66, 85, 71, + 40, 0, 0, 0, 72, 8, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 61, 0, 0, 0, + 20, 1, 0, 0, 15, 0, + 0, 0, 28, 7, 0, 0, + 48, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 124, 8, + 0, 0, 0, 0, 255, 255, + 148, 8, 0, 0, 0, 0, + 255, 255, 160, 8, 0, 0, + 0, 0, 255, 255, 172, 8, + 0, 0, 0, 0, 255, 255, + 184, 8, 0, 0, 0, 0, + 255, 255, 196, 8, 0, 0, + 52, 0, 0, 0, 208, 8, + 0, 0, 52, 0, 0, 0, + 224, 8, 0, 0, 52, 0, + 0, 0, 236, 8, 0, 0, + 52, 0, 0, 0, 0, 9, + 0, 0, 52, 0, 0, 0, + 24, 9, 0, 0, 52, 0, + 0, 0, 48, 9, 0, 0, + 56, 0, 0, 0, 72, 9, + 0, 0, 55, 0, 0, 0, + 88, 9, 0, 0, 52, 0, + 0, 0, 104, 9, 0, 0, + 52, 0, 0, 0, 124, 9, + 0, 0, 52, 0, 0, 0, + 144, 9, 0, 0, 52, 0, + 0, 0, 168, 9, 0, 0, + 52, 0, 0, 0, 192, 9, + 0, 0, 52, 0, 0, 0, + 216, 9, 0, 0, 52, 0, + 0, 0, 240, 9, 0, 0, + 52, 0, 0, 0, 8, 10, + 0, 0, 56, 0, 0, 0, + 32, 10, 0, 0, 55, 0, + 0, 0, 48, 10, 0, 0, + 56, 0, 0, 0, 64, 10, + 0, 0, 55, 0, 0, 0, + 80, 10, 0, 0, 59, 0, + 1, 0, 96, 10, 0, 0, + 59, 0, 1, 0, 112, 10, + 0, 0, 59, 0, 1, 0, + 128, 10, 0, 0, 59, 0, + 1, 0, 144, 10, 0, 0, + 36, 0, 1, 0, 156, 10, + 0, 0, 39, 0, 1, 0, + 172, 10, 0, 0, 41, 0, + 1, 0, 188, 10, 0, 0, + 46, 0, 1, 0, 204, 10, + 0, 0, 46, 0, 1, 0, + 220, 10, 0, 0, 46, 0, + 1, 0, 232, 10, 0, 0, + 57, 0, 1, 0, 252, 10, + 0, 0, 57, 0, 1, 0, + 8, 11, 0, 0, 57, 0, + 1, 0, 24, 11, 0, 0, + 57, 0, 1, 0, 40, 11, + 0, 0, 58, 0, 1, 0, + 56, 11, 0, 0, 58, 0, + 1, 0, 72, 11, 0, 0, + 33, 0, 1, 0, 84, 11, + 0, 0, 33, 0, 1, 0, + 100, 11, 0, 0, 37, 0, + 1, 0, 112, 11, 0, 0, + 42, 0, 1, 0, 128, 11, + 0, 0, 42, 0, 1, 0, + 144, 11, 0, 0, 42, 0, + 1, 0, 160, 11, 0, 0, + 47, 0, 1, 0, 176, 11, + 0, 0, 47, 0, 1, 0, + 192, 11, 0, 0, 63, 0, + 1, 0, 208, 11, 0, 0, + 14, 0, 2, 0, 224, 11, + 0, 0, 14, 0, 2, 0, + 240, 11, 0, 0, 14, 0, + 2, 0, 0, 12, 0, 0, + 63, 0, 1, 0, 16, 12, + 0, 0, 63, 0, 1, 0, + 32, 12, 0, 0, 63, 0, + 1, 0, 48, 12, 0, 0, + 141, 0, 0, 0, 64, 12, + 0, 0, 141, 0, 0, 0, + 84, 12, 0, 0, 46, 0, + 1, 0, 96, 12, 0, 0, + 145, 0, 0, 0, 108, 12, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 79, 110, 101, + 76, 105, 103, 104, 116, 70, + 111, 117, 114, 66, 111, 110, + 101, 115, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 75, 3, + 0, 0, 84, 3, 0, 0, + 100, 3, 0, 0, 84, 3, + 0, 0, 109, 3, 0, 0, + 120, 3, 0, 0, 136, 3, + 0, 0, 84, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 14, 0, 1, 0, 4, 0, + 148, 3, 0, 0, 35, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 49, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 50, 0, + 0, 0, 255, 255, 255, 255, + 12, 0, 255, 255, 53, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 57, 0, + 0, 0, 10, 0, 11, 0, + 255, 255, 255, 255, 58, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 59, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 60, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 32, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 100, 111, + 116, 72, 0, 171, 171, 171, + 44, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 30, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 41, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 43, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 37, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 38, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 39, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 10, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 11, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 16, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 17, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 18, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 19, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 20, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 21, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 47, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 83, 107, 105, 110, 0, 118, + 105, 110, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 111, 114, 109, 97, 108, + 0, 73, 110, 100, 105, 99, + 101, 115, 0, 171, 171, 171, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 87, 101, + 105, 103, 104, 116, 115, 0, + 133, 5, 0, 0, 84, 3, + 0, 0, 142, 5, 0, 0, + 44, 4, 0, 0, 109, 3, + 0, 0, 120, 3, 0, 0, + 149, 5, 0, 0, 160, 5, + 0, 0, 176, 5, 0, 0, + 84, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 184, 5, + 0, 0, 12, 0, 0, 0, + 4, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 22, 0, 0, 0, + 255, 255, 5, 0, 255, 255, + 255, 255, 23, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 24, 0, 0, 0, + 255, 255, 255, 255, 6, 0, + 255, 255, 25, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 5, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 16, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 121, 6, 0, 0, 84, 3, + 0, 0, 75, 3, 0, 0, + 84, 3, 0, 0, 100, 3, + 0, 0, 44, 4, 0, 0, + 128, 6, 0, 0, 140, 6, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 156, 6, 0, 0, + 54, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 55, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 56, 0, 0, 0, 3, 0, + 255, 255, 255, 255, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 29, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 31, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 252, 2, 0, 0, + 7, 3, 0, 0, 20, 3, + 0, 0, 1, 0, 0, 0, + 36, 3, 0, 0, 0, 0, + 0, 0, 48, 3, 0, 0, + 180, 3, 0, 0, 8, 0, + 0, 0, 196, 3, 0, 0, + 0, 0, 0, 0, 36, 4, + 0, 0, 44, 4, 0, 0, + 1, 0, 0, 0, 60, 4, + 0, 0, 0, 0, 0, 0, + 72, 4, 0, 0, 44, 4, + 0, 0, 1, 0, 0, 0, + 80, 4, 0, 0, 0, 0, + 0, 0, 92, 4, 0, 0, + 44, 4, 0, 0, 1, 0, + 0, 0, 100, 4, 0, 0, + 0, 0, 0, 0, 112, 4, + 0, 0, 44, 4, 0, 0, + 1, 0, 0, 0, 124, 4, + 0, 0, 0, 0, 0, 0, + 136, 4, 0, 0, 148, 4, + 0, 0, 1, 0, 0, 0, + 164, 4, 0, 0, 0, 0, + 0, 0, 176, 4, 0, 0, + 84, 3, 0, 0, 3, 0, + 0, 0, 184, 4, 0, 0, + 0, 0, 0, 0, 220, 4, + 0, 0, 232, 4, 0, 0, + 9, 0, 0, 0, 248, 4, + 0, 0, 0, 0, 0, 0, + 100, 5, 0, 0, 44, 4, + 0, 0, 1, 0, 0, 0, + 112, 5, 0, 0, 124, 5, + 0, 0, 129, 5, 0, 0, + 224, 5, 0, 0, 6, 0, + 0, 0, 240, 5, 0, 0, + 48, 3, 0, 0, 129, 5, + 0, 0, 224, 5, 0, 0, + 5, 0, 0, 0, 56, 6, + 0, 0, 0, 0, 0, 0, + 116, 6, 0, 0, 188, 6, + 0, 0, 3, 0, 0, 0, + 204, 6, 0, 0, 0, 0, + 0, 0, 240, 6, 0, 0, + 44, 4, 0, 0, 1, 0, + 0, 0, 252, 6, 0, 0, + 0, 0, 0, 0, 8, 7, + 0, 0, 44, 4, 0, 0, + 1, 0, 0, 0, 16, 7, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 243, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 15, 128, 3, 0, 228, 144, + 243, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 15, 176, + 0, 0, 225, 128, 5, 0, + 0, 4, 1, 0, 15, 128, + 4, 0, 85, 144, 26, 32, + 228, 160, 0, 0, 0, 176, + 4, 0, 0, 5, 1, 0, + 15, 128, 26, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 1, 0, 228, 128, + 4, 0, 0, 5, 0, 0, + 15, 128, 26, 32, 228, 160, + 0, 0, 170, 176, 4, 0, + 170, 144, 1, 0, 228, 128, + 4, 0, 0, 5, 0, 0, + 15, 128, 26, 32, 228, 160, + 0, 0, 255, 176, 4, 0, + 255, 144, 0, 0, 228, 128, 8, 0, 0, 3, 1, 0, - 4, 128, 1, 0, 228, 144, - 3, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 3, 0, + 1, 128, 1, 0, 228, 144, + 0, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 5, 0, 0, 4, + 2, 0, 15, 128, 4, 0, + 85, 144, 27, 32, 228, 160, + 0, 0, 0, 176, 5, 0, + 0, 4, 3, 0, 15, 128, + 4, 0, 85, 144, 28, 32, + 228, 160, 0, 0, 0, 176, + 4, 0, 0, 5, 3, 0, + 15, 128, 28, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 3, 0, 228, 128, + 4, 0, 0, 5, 2, 0, + 15, 128, 27, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 2, 0, 228, 128, + 4, 0, 0, 5, 2, 0, + 15, 128, 27, 32, 228, 160, + 0, 0, 170, 176, 4, 0, + 170, 144, 2, 0, 228, 128, + 4, 0, 0, 5, 3, 0, + 15, 128, 28, 32, 228, 160, + 0, 0, 170, 176, 4, 0, + 170, 144, 3, 0, 228, 128, + 4, 0, 0, 5, 3, 0, + 15, 128, 28, 32, 228, 160, + 0, 0, 255, 176, 4, 0, + 255, 144, 3, 0, 228, 128, + 4, 0, 0, 5, 2, 0, + 15, 128, 27, 32, 228, 160, + 0, 0, 255, 176, 4, 0, + 255, 144, 2, 0, 228, 128, + 8, 0, 0, 3, 1, 0, + 2, 128, 1, 0, 228, 144, + 2, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, - 2, 0, 1, 128, 1, 0, - 228, 128, 19, 0, 228, 160, + 1, 0, 4, 128, 1, 0, + 228, 144, 3, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 3, 0, 228, 128, 8, 0, + 0, 3, 2, 0, 1, 128, + 1, 0, 228, 128, 19, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 2, 128, 1, 0, + 228, 128, 20, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 2, 128, 1, 0, 228, 128, - 20, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 128, - 1, 0, 228, 128, 21, 0, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 128, 8, 0, 0, 3, - 1, 0, 8, 128, 3, 0, - 228, 161, 1, 0, 228, 128, - 13, 0, 0, 3, 2, 0, - 1, 128, 1, 0, 255, 128, - 243, 0, 85, 160, 5, 0, + 4, 128, 1, 0, 228, 128, + 21, 0, 228, 160, 36, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 128, 8, 0, 0, 3, 1, 0, 8, 128, - 1, 0, 255, 128, 2, 0, - 0, 128, 5, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 255, 128, 6, 0, 144, 160, - 1, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 224, 2, 0, 249, 128, - 3, 0, 228, 128, 1, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 128, 15, 0, 228, 160, + 3, 0, 228, 161, 1, 0, + 228, 128, 13, 0, 0, 3, + 2, 0, 1, 128, 1, 0, + 255, 128, 243, 0, 85, 160, + 5, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 255, 128, + 2, 0, 0, 128, 5, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 255, 128, 6, 0, + 144, 160, 1, 0, 0, 2, + 3, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 7, 224, 2, 0, + 249, 128, 3, 0, 228, 128, + 1, 0, 228, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 3, 0, 1, 128, + 0, 0, 228, 128, 15, 0, + 228, 160, 9, 0, 0, 3, + 3, 0, 2, 128, 0, 0, + 228, 128, 16, 0, 228, 160, 9, 0, 0, 3, 3, 0, - 2, 128, 0, 0, 228, 128, - 16, 0, 228, 160, 9, 0, - 0, 3, 3, 0, 4, 128, - 0, 0, 228, 128, 17, 0, - 228, 160, 2, 0, 0, 3, + 4, 128, 0, 0, 228, 128, + 17, 0, 228, 160, 2, 0, + 0, 3, 2, 0, 14, 128, + 3, 0, 144, 129, 12, 0, + 144, 160, 36, 0, 0, 2, + 3, 0, 7, 128, 2, 0, + 249, 128, 2, 0, 0, 3, 2, 0, 14, 128, 3, 0, - 144, 129, 12, 0, 144, 160, + 144, 128, 3, 0, 144, 161, 36, 0, 0, 2, 3, 0, 7, 128, 2, 0, 249, 128, - 2, 0, 0, 3, 2, 0, - 14, 128, 3, 0, 144, 128, - 3, 0, 144, 161, 36, 0, - 0, 2, 3, 0, 7, 128, - 2, 0, 249, 128, 8, 0, + 8, 0, 0, 3, 1, 0, + 1, 128, 3, 0, 228, 128, + 1, 0, 228, 128, 11, 0, + 0, 3, 1, 0, 1, 128, + 1, 0, 0, 128, 243, 0, + 85, 160, 5, 0, 0, 3, + 1, 0, 1, 128, 2, 0, + 0, 128, 1, 0, 0, 128, + 32, 0, 0, 3, 2, 0, + 1, 128, 1, 0, 0, 128, + 2, 0, 255, 160, 5, 0, + 0, 3, 1, 0, 7, 128, + 2, 0, 0, 128, 9, 0, + 228, 160, 5, 0, 0, 3, + 1, 0, 7, 224, 1, 0, + 228, 128, 2, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 128, + 24, 0, 228, 160, 9, 0, 0, 3, 1, 0, 1, 128, - 3, 0, 228, 128, 1, 0, - 228, 128, 11, 0, 0, 3, + 0, 0, 228, 128, 14, 0, + 228, 160, 11, 0, 0, 3, 1, 0, 1, 128, 1, 0, 0, 128, 243, 0, 85, 160, - 5, 0, 0, 3, 1, 0, - 1, 128, 2, 0, 0, 128, - 1, 0, 0, 128, 32, 0, - 0, 3, 2, 0, 1, 128, - 1, 0, 0, 128, 2, 0, - 255, 160, 5, 0, 0, 3, - 1, 0, 7, 128, 2, 0, - 0, 128, 9, 0, 228, 160, - 5, 0, 0, 3, 1, 0, - 7, 224, 1, 0, 228, 128, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 128, 24, 0, + 10, 0, 0, 3, 1, 0, + 8, 224, 1, 0, 0, 128, + 243, 0, 170, 160, 9, 0, + 0, 3, 1, 0, 1, 128, + 0, 0, 228, 128, 22, 0, 228, 160, 9, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 228, 128, 14, 0, 228, 160, - 11, 0, 0, 3, 1, 0, - 1, 128, 1, 0, 0, 128, - 243, 0, 85, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 1, 0, 0, 128, 243, 0, - 170, 160, 9, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 228, 128, 22, 0, 228, 160, - 9, 0, 0, 3, 1, 0, - 2, 128, 0, 0, 228, 128, - 23, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 128, 25, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 0, 128, 242, 0, 228, 160, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 0, 128, 1, 0, - 0, 2, 0, 0, 8, 224, - 0, 0, 255, 160, 1, 0, - 0, 2, 2, 0, 3, 224, - 2, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 232, 7, 0, 0, 64, 0, - 1, 0, 250, 1, 0, 0, - 89, 8, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 242, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 4, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 4, 0, 0, 0, 38, 0, - 0, 11, 0, 208, 0, 0, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 16, 0, - 3, 0, 0, 0, 2, 64, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 56, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 21, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 26, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 26, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 26, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 166, 26, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 26, 0, 0, 0, 58, 0, + 1, 0, 2, 128, 0, 0, + 228, 128, 23, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 128, + 25, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 0, 128, 242, 0, + 228, 160, 1, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 0, 128, + 1, 0, 0, 2, 0, 0, + 8, 224, 0, 0, 255, 160, + 1, 0, 0, 2, 2, 0, + 3, 224, 2, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 232, 7, 0, 0, + 64, 0, 1, 0, 250, 1, + 0, 0, 89, 8, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 242, 0, 0, 0, + 95, 0, 0, 3, 242, 16, 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 70, 18, + 95, 0, 0, 3, 114, 16, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 95, 0, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 3, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 4, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 242, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 2, 0, 0, 0, + 103, 0, 0, 4, 242, 32, 16, 0, 3, 0, 0, 0, - 86, 21, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 27, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 1, 0, 0, 0, 104, 0, + 0, 2, 4, 0, 0, 0, + 38, 0, 0, 11, 0, 208, + 0, 0, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 30, + 16, 0, 3, 0, 0, 0, + 2, 64, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 3, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 21, 16, 0, + 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 27, 0, 0, 0, 10, 0, + 26, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 27, 0, 0, 0, 42, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 26, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 26, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 166, 26, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 26, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 166, 26, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 70, 14, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 86, 21, 16, 0, + 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 27, 0, 0, 0, 58, 0, + 27, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 0, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 17, 0, 0, 7, - 34, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 50, 0, 0, 12, 242, 0, 16, 0, 3, 0, 0, 0, - 56, 0, 0, 10, 242, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 27, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 14, 16, 0, 3, 0, 0, 0, - 86, 21, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 28, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 28, 0, 0, 0, 10, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 27, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 166, 26, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 27, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 34, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 34, 0, 16, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 70, 14, 16, 0, 3, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 86, 21, 16, 0, + 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 28, 0, 0, 0, 42, 0, + 28, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 166, 26, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 28, 0, 0, 0, 58, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 28, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 12, 242, 0, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 28, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 166, 26, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 12, 242, 0, 16, 0, 0, 0, 0, 0, - 246, 31, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 16, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 28, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 246, 31, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 17, 0, 0, 7, 66, 0, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 17, 0, 0, 7, - 66, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 18, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 19, 0, + 70, 14, 16, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, + 19, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 21, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 0, 0, 20, 0, 0, 0, + 16, 0, 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 21, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 29, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 18, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 130, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 226, 0, 16, 0, - 2, 0, 0, 0, 246, 15, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 6, 137, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 50, 0, 0, 11, 114, 32, + 16, 0, 0, 9, 130, 0, 16, 0, 0, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 29, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 16, 16, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 18, 0, 16, 0, - 3, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 17, 0, 0, 8, 34, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 8, 226, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 137, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 16, + 16, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 18, 0, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 8, - 66, 0, 16, 0, 3, 0, + 34, 0, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 9, 226, 0, 16, 0, - 2, 0, 0, 0, 6, 9, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 6, 137, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 150, 7, - 16, 0, 2, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 226, 0, 16, 0, - 2, 0, 0, 0, 86, 14, + 16, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, + 3, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 0, 0, 0, 9, 226, 0, 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 6, 137, 32, 128, - 65, 0, 0, 0, 0, 0, + 6, 9, 16, 128, 65, 0, 0, 0, 3, 0, 0, 0, + 6, 137, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 150, 7, 16, 0, 2, 0, @@ -635,132 +1019,147 @@ const BYTE SkinnedEffect_VSSkinnedOneLightFourBones[] = 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 226, 0, + 50, 0, 0, 11, 226, 0, 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 86, 14, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 150, 7, + 86, 14, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 6, 137, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 150, 7, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 52, 0, 0, 7, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 18, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 47, 0, - 0, 5, 18, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 226, 0, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 86, 14, + 16, 0, 2, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 150, 7, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 52, 0, + 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 18, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 47, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 25, 0, 0, 5, + 0, 0, 56, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 56, 0, 0, 8, 114, 32, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 142, + 0, 0, 0, 0, 9, 0, + 0, 0, 56, 0, 0, 8, + 114, 32, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 2, 0, 0, 0, 70, 16, + 2, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 5, 50, 32, 16, 0, 2, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 3, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, + 70, 16, 16, 0, 2, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 3, 0, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 17, 0, 0, 8, 130, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 25, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 184, 0, - 0, 0, 5, 0, 0, 0, - 8, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 24, 0, + 0, 0, 17, 0, 0, 8, + 130, 32, 16, 0, 3, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 184, 0, 0, 0, 5, 0, + 0, 0, 8, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 140, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 147, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 156, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 15, 15, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 15, 15, 0, 0, 169, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 15, 15, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 66, 76, + 69, 78, 68, 73, 78, 68, + 73, 67, 69, 83, 0, 66, + 76, 69, 78, 68, 87, 69, + 73, 71, 72, 84, 0, 171, + 171, 171, 79, 83, 71, 78, + 132, 0, 0, 0, 4, 0, + 0, 0, 8, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 15, 15, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 66, 76, 69, 78, - 68, 73, 78, 68, 73, 67, - 69, 83, 0, 66, 76, 69, - 78, 68, 87, 69, 73, 71, - 72, 84, 0, 171, 171, 171, - 79, 83, 71, 78, 132, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 12, 0, 0, + 119, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 110, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 119, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 171 + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightOneBone.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightOneBone.inc index 2e7e63714197ded6d347169aa24111c3316f87ab..9a87e6d2e0f01431c8ac0e0b5af7838a23be98dd 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightOneBone.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightOneBone.inc @@ -42,57 +42,95 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0.x, v3.x, c243.x mova a0.x, r0.x - mul r0, v4.x, c26[a0.x] - dp3 r1.x, v1, r0 - dp4 r0.x, v0, r0 - mul r2, v4.x, c27[a0.x] - mul r3, v4.x, c28[a0.x] - dp3 r1.y, v1, r2 - dp4 r0.y, v0, r2 - dp3 r1.z, v1, r3 - dp4 r0.z, v0, r3 + mul r0, v4.x, c26[a0.x] // ::skinning<0,3,6,9> + +#line 56 + dp3 r1.x, v1, r0 // Skin::vin<4> + dp4 r0.x, v0, r0 // Skin::vin<0> + +#line 52 + mul r2, v4.x, c27[a0.x] // ::skinning<1,4,7,10> + mul r3, v4.x, c28[a0.x] // ::skinning<2,5,8,11> + +#line 56 + dp3 r1.y, v1, r2 // Skin::vin<5> + dp4 r0.y, v0, r2 // Skin::vin<1> + dp3 r1.z, v1, r3 // Skin::vin<6> + dp4 r0.z, v0, r3 // Skin::vin<2> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r2.x, r1, c19 dp3 r2.y, r1, c20 dp3 r2.z, r1, c21 - nrm r1.xyz, r2 - dp3 r1.w, -c3, r1 - sge r2.x, r1.w, c243.y - mul r1.w, r1.w, r2.x + nrm r1.xyz, r2 // ::worldNormal<0,1,2> + +#line 36 + dp3 r1.w, -c3, r1 // ::dotL<0> + +#line 39 + sge r2.x, r1.w, c243.y // ::zeroL<0> + mul r1.w, r1.w, r2.x // ::diffuse<0> + +#line 46 mul r2.yzw, r1.w, c6.xxyz - mov r3.xyz, c0 - mad oT0.xyz, r2.yzww, r3, c1 + mov r3.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r2.yzww, r3, c1 // ::VSSkinnedOneLightOneBone<0,1,2> + +#line 57 mov r0.w, v0.w - dp4 r3.x, r0, c15 - dp4 r3.y, r0, c16 - dp4 r3.z, r0, c17 + dp4 r3.x, r0, c15 // ::pos_ws<0> + dp4 r3.y, r0, c16 // ::pos_ws<1> + dp4 r3.z, r0, c17 // ::pos_ws<2> add r2.yzw, -r3.xxyz, c12.xxyz - nrm r3.xyz, r2.yzww + nrm r3.xyz, r2.yzww // ::eyeVector<0,1,2> + +#line 33 add r2.yzw, r3.xxyz, -c3.xxyz - nrm r3.xyz, r2.yzww - dp3 r1.x, r3, r1 + nrm r3.xyz, r2.yzww // ::halfVectors<0,1,2> + +#line 37 + dp3 r1.x, r3, r1 // ::dotH<0> + +#line 42 max r1.x, r1.x, c243.y mul r1.x, r2.x, r1.x - pow r2.x, r1.x, c2.w + pow r2.x, r1.x, c2.w // ::specular<0> + +#line 47 mul r1.xyz, r2.x, c9 - mul oT1.xyz, r1, c2 - dp4 oPos.z, r0, c24 + mul oT1.xyz, r1, c2 // ::VSSkinnedOneLightOneBone<4,5,6> + +#line 63 + dp4 oPos.z, r0, c24 // ::VSSkinnedOneLightOneBone<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r1.x, r0, c14 max r1.x, r1.x, c243.y - min oT1.w, r1.x, c243.z - dp4 r1.x, r0, c22 - dp4 r1.y, r0, c23 - dp4 r0.x, r0, c25 - mad oPos.xy, r0.x, c242, r1 - mov oPos.w, r0.x - mov oT0.w, c0.w - mov oT2.xy, v2 + min oT1.w, r1.x, c243.z // ::VSSkinnedOneLightOneBone<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r1.x, r0, c22 // ::vout<0> + dp4 r1.y, r0, c23 // ::vout<1> + dp4 r0.x, r0, c25 // ::vout<3> + +#line 109 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.x, c242, r1 // ::VSSkinnedOneLightOneBone<10,11> + mov oPos.w, r0.x // ::VSSkinnedOneLightOneBone<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c0.w // ::VSSkinnedOneLightOneBone<3> + +#line 113 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mov oT2.xy, v2 // ::VSSkinnedOneLightOneBone<8,9> // approximately 54 instruction slots used vs_4_0 @@ -161,17 +199,17 @@ ret const BYTE SkinnedEffect_VSSkinnedOneLightOneBone[] = { - 68, 88, 66, 67, 245, 19, - 153, 62, 142, 216, 232, 222, - 208, 186, 205, 184, 189, 51, - 85, 159, 1, 0, 0, 0, - 24, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 120, 170, + 51, 155, 98, 149, 240, 251, + 11, 114, 75, 24, 138, 47, + 241, 16, 1, 0, 0, 0, + 0, 19, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 152, 3, 0, 0, 204, 9, - 0, 0, 140, 10, 0, 0, - 65, 111, 110, 57, 96, 3, - 0, 0, 96, 3, 0, 0, - 0, 2, 254, 255, 44, 3, + 128, 11, 0, 0, 180, 17, + 0, 0, 116, 18, 0, 0, + 65, 111, 110, 57, 72, 11, + 0, 0, 72, 11, 0, 0, + 0, 2, 254, 255, 20, 11, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -179,326 +217,648 @@ const BYTE SkinnedEffect_VSSkinnedOneLightOneBone[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 243, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 5, 0, + 0, 2, 254, 255, 254, 255, + 249, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 184, 7, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 52, 0, 0, 0, + 20, 1, 0, 0, 15, 0, + 0, 0, 140, 6, 0, 0, + 232, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 236, 7, + 0, 0, 0, 0, 255, 255, + 4, 8, 0, 0, 0, 0, + 255, 255, 16, 8, 0, 0, + 0, 0, 255, 255, 28, 8, + 0, 0, 0, 0, 255, 255, + 40, 8, 0, 0, 0, 0, + 255, 255, 52, 8, 0, 0, + 52, 0, 0, 0, 64, 8, + 0, 0, 52, 0, 0, 0, + 80, 8, 0, 0, 52, 0, + 0, 0, 92, 8, 0, 0, + 56, 0, 0, 0, 112, 8, + 0, 0, 55, 0, 0, 0, + 128, 8, 0, 0, 52, 0, + 0, 0, 144, 8, 0, 0, + 52, 0, 0, 0, 164, 8, + 0, 0, 56, 0, 0, 0, + 184, 8, 0, 0, 55, 0, + 0, 0, 200, 8, 0, 0, + 56, 0, 0, 0, 216, 8, + 0, 0, 55, 0, 0, 0, + 232, 8, 0, 0, 59, 0, + 1, 0, 248, 8, 0, 0, + 59, 0, 1, 0, 8, 9, + 0, 0, 59, 0, 1, 0, + 24, 9, 0, 0, 59, 0, + 1, 0, 40, 9, 0, 0, + 36, 0, 1, 0, 52, 9, + 0, 0, 39, 0, 1, 0, + 68, 9, 0, 0, 41, 0, + 1, 0, 84, 9, 0, 0, + 46, 0, 1, 0, 100, 9, + 0, 0, 46, 0, 1, 0, + 116, 9, 0, 0, 46, 0, + 1, 0, 128, 9, 0, 0, + 57, 0, 1, 0, 148, 9, + 0, 0, 57, 0, 1, 0, + 160, 9, 0, 0, 57, 0, + 1, 0, 176, 9, 0, 0, + 57, 0, 1, 0, 192, 9, + 0, 0, 58, 0, 1, 0, + 208, 9, 0, 0, 58, 0, + 1, 0, 224, 9, 0, 0, + 33, 0, 1, 0, 236, 9, + 0, 0, 33, 0, 1, 0, + 252, 9, 0, 0, 37, 0, + 1, 0, 8, 10, 0, 0, + 42, 0, 1, 0, 24, 10, + 0, 0, 42, 0, 1, 0, + 40, 10, 0, 0, 42, 0, + 1, 0, 56, 10, 0, 0, + 47, 0, 1, 0, 72, 10, + 0, 0, 47, 0, 1, 0, + 88, 10, 0, 0, 63, 0, + 1, 0, 104, 10, 0, 0, + 14, 0, 2, 0, 120, 10, + 0, 0, 14, 0, 2, 0, + 136, 10, 0, 0, 14, 0, + 2, 0, 152, 10, 0, 0, + 63, 0, 1, 0, 168, 10, + 0, 0, 63, 0, 1, 0, + 184, 10, 0, 0, 63, 0, + 1, 0, 200, 10, 0, 0, + 109, 0, 0, 0, 216, 10, + 0, 0, 109, 0, 0, 0, + 236, 10, 0, 0, 46, 0, + 1, 0, 248, 10, 0, 0, + 113, 0, 0, 0, 4, 11, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 79, 110, 101, + 76, 105, 103, 104, 116, 79, + 110, 101, 66, 111, 110, 101, + 0, 68, 105, 102, 102, 117, + 115, 101, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 1, 3, + 0, 0, 12, 3, 0, 0, + 28, 3, 0, 0, 12, 3, + 0, 0, 37, 3, 0, 0, + 48, 3, 0, 0, 64, 3, + 0, 0, 12, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 14, 0, 1, 0, 4, 0, + 76, 3, 0, 0, 26, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 40, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 41, 0, + 0, 0, 255, 255, 255, 255, + 12, 0, 255, 255, 44, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 48, 0, + 0, 0, 10, 0, 11, 0, + 255, 255, 255, 255, 49, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 50, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 51, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 23, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 100, 111, + 116, 72, 0, 171, 171, 171, + 35, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 21, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 32, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 28, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 29, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 30, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 11, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 12, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 38, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 83, 107, 105, 110, 0, 118, + 105, 110, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 111, 114, 109, 97, 108, + 0, 73, 110, 100, 105, 99, + 101, 115, 0, 171, 171, 171, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 87, 101, + 105, 103, 104, 116, 115, 0, + 245, 4, 0, 0, 12, 3, + 0, 0, 254, 4, 0, 0, + 228, 3, 0, 0, 37, 3, + 0, 0, 48, 3, 0, 0, + 5, 5, 0, 0, 16, 5, + 0, 0, 32, 5, 0, 0, + 12, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 40, 5, + 0, 0, 9, 0, 0, 0, + 4, 0, 255, 255, 255, 255, + 255, 255, 10, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 0, 0, + 255, 255, 5, 0, 255, 255, + 255, 255, 14, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 15, 0, 0, 0, + 255, 255, 255, 255, 6, 0, + 255, 255, 16, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 5, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 16, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 233, 5, 0, 0, 12, 3, + 0, 0, 1, 3, 0, 0, + 12, 3, 0, 0, 28, 3, + 0, 0, 228, 3, 0, 0, + 240, 5, 0, 0, 252, 5, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 12, 6, 0, 0, + 45, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 46, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 47, 0, 0, 0, 3, 0, + 255, 255, 255, 255, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 20, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 22, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 180, 2, 0, 0, + 191, 2, 0, 0, 204, 2, + 0, 0, 1, 0, 0, 0, + 220, 2, 0, 0, 0, 0, + 0, 0, 232, 2, 0, 0, + 108, 3, 0, 0, 8, 0, + 0, 0, 124, 3, 0, 0, + 0, 0, 0, 0, 220, 3, + 0, 0, 228, 3, 0, 0, + 1, 0, 0, 0, 244, 3, + 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 228, 3, + 0, 0, 1, 0, 0, 0, + 8, 4, 0, 0, 0, 0, + 0, 0, 20, 4, 0, 0, + 228, 3, 0, 0, 1, 0, + 0, 0, 28, 4, 0, 0, + 0, 0, 0, 0, 40, 4, + 0, 0, 228, 3, 0, 0, + 1, 0, 0, 0, 52, 4, + 0, 0, 0, 0, 0, 0, + 64, 4, 0, 0, 76, 4, + 0, 0, 1, 0, 0, 0, + 92, 4, 0, 0, 0, 0, + 0, 0, 104, 4, 0, 0, + 12, 3, 0, 0, 3, 0, + 0, 0, 112, 4, 0, 0, + 0, 0, 0, 0, 148, 4, + 0, 0, 160, 4, 0, 0, + 3, 0, 0, 0, 176, 4, + 0, 0, 0, 0, 0, 0, + 212, 4, 0, 0, 228, 3, + 0, 0, 1, 0, 0, 0, + 224, 4, 0, 0, 236, 4, + 0, 0, 241, 4, 0, 0, + 80, 5, 0, 0, 6, 0, + 0, 0, 96, 5, 0, 0, + 232, 2, 0, 0, 241, 4, + 0, 0, 80, 5, 0, 0, + 5, 0, 0, 0, 168, 5, + 0, 0, 0, 0, 0, 0, + 228, 5, 0, 0, 44, 6, + 0, 0, 3, 0, 0, 0, + 60, 6, 0, 0, 0, 0, + 0, 0, 96, 6, 0, 0, + 228, 3, 0, 0, 1, 0, + 0, 0, 108, 6, 0, 0, + 0, 0, 0, 0, 120, 6, + 0, 0, 228, 3, 0, 0, + 1, 0, 0, 0, 128, 6, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 243, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 1, 128, 3, 0, 0, 144, + 243, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 1, 176, + 0, 0, 0, 128, 5, 0, + 0, 4, 0, 0, 15, 128, + 4, 0, 0, 144, 26, 32, + 228, 160, 0, 0, 0, 176, + 8, 0, 0, 3, 1, 0, + 1, 128, 1, 0, 228, 144, + 0, 0, 228, 128, 9, 0, 0, 3, 0, 0, 1, 128, - 3, 0, 0, 144, 243, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 1, 176, 0, 0, - 0, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 4, 0, - 0, 144, 26, 32, 228, 160, - 0, 0, 0, 176, 8, 0, - 0, 3, 1, 0, 1, 128, - 1, 0, 228, 144, 0, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, - 5, 0, 0, 4, 2, 0, - 15, 128, 4, 0, 0, 144, - 27, 32, 228, 160, 0, 0, - 0, 176, 5, 0, 0, 4, - 3, 0, 15, 128, 4, 0, - 0, 144, 28, 32, 228, 160, - 0, 0, 0, 176, 8, 0, - 0, 3, 1, 0, 2, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 2, 0, 228, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 5, 0, 0, 4, + 2, 0, 15, 128, 4, 0, + 0, 144, 27, 32, 228, 160, + 0, 0, 0, 176, 5, 0, + 0, 4, 3, 0, 15, 128, + 4, 0, 0, 144, 28, 32, + 228, 160, 0, 0, 0, 176, 8, 0, 0, 3, 1, 0, - 4, 128, 1, 0, 228, 144, - 3, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 3, 0, + 2, 128, 1, 0, 228, 144, + 2, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, - 2, 0, 1, 128, 1, 0, - 228, 128, 19, 0, 228, 160, + 1, 0, 4, 128, 1, 0, + 228, 144, 3, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 3, 0, 228, 128, 8, 0, + 0, 3, 2, 0, 1, 128, + 1, 0, 228, 128, 19, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 2, 128, 1, 0, + 228, 128, 20, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 2, 128, 1, 0, 228, 128, - 20, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 128, - 1, 0, 228, 128, 21, 0, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 128, 8, 0, 0, 3, - 1, 0, 8, 128, 3, 0, - 228, 161, 1, 0, 228, 128, - 13, 0, 0, 3, 2, 0, - 1, 128, 1, 0, 255, 128, - 243, 0, 85, 160, 5, 0, + 4, 128, 1, 0, 228, 128, + 21, 0, 228, 160, 36, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 128, 8, 0, 0, 3, 1, 0, 8, 128, - 1, 0, 255, 128, 2, 0, - 0, 128, 5, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 255, 128, 6, 0, 144, 160, - 1, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 224, 2, 0, 249, 128, - 3, 0, 228, 128, 1, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 128, 15, 0, 228, 160, + 3, 0, 228, 161, 1, 0, + 228, 128, 13, 0, 0, 3, + 2, 0, 1, 128, 1, 0, + 255, 128, 243, 0, 85, 160, + 5, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 255, 128, + 2, 0, 0, 128, 5, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 255, 128, 6, 0, + 144, 160, 1, 0, 0, 2, + 3, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 7, 224, 2, 0, + 249, 128, 3, 0, 228, 128, + 1, 0, 228, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 3, 0, 1, 128, + 0, 0, 228, 128, 15, 0, + 228, 160, 9, 0, 0, 3, + 3, 0, 2, 128, 0, 0, + 228, 128, 16, 0, 228, 160, 9, 0, 0, 3, 3, 0, - 2, 128, 0, 0, 228, 128, - 16, 0, 228, 160, 9, 0, - 0, 3, 3, 0, 4, 128, - 0, 0, 228, 128, 17, 0, - 228, 160, 2, 0, 0, 3, + 4, 128, 0, 0, 228, 128, + 17, 0, 228, 160, 2, 0, + 0, 3, 2, 0, 14, 128, + 3, 0, 144, 129, 12, 0, + 144, 160, 36, 0, 0, 2, + 3, 0, 7, 128, 2, 0, + 249, 128, 2, 0, 0, 3, 2, 0, 14, 128, 3, 0, - 144, 129, 12, 0, 144, 160, + 144, 128, 3, 0, 144, 161, 36, 0, 0, 2, 3, 0, 7, 128, 2, 0, 249, 128, - 2, 0, 0, 3, 2, 0, - 14, 128, 3, 0, 144, 128, - 3, 0, 144, 161, 36, 0, - 0, 2, 3, 0, 7, 128, - 2, 0, 249, 128, 8, 0, + 8, 0, 0, 3, 1, 0, + 1, 128, 3, 0, 228, 128, + 1, 0, 228, 128, 11, 0, 0, 3, 1, 0, 1, 128, - 3, 0, 228, 128, 1, 0, - 228, 128, 11, 0, 0, 3, + 1, 0, 0, 128, 243, 0, + 85, 160, 5, 0, 0, 3, + 1, 0, 1, 128, 2, 0, + 0, 128, 1, 0, 0, 128, + 32, 0, 0, 3, 2, 0, + 1, 128, 1, 0, 0, 128, + 2, 0, 255, 160, 5, 0, + 0, 3, 1, 0, 7, 128, + 2, 0, 0, 128, 9, 0, + 228, 160, 5, 0, 0, 3, + 1, 0, 7, 224, 1, 0, + 228, 128, 2, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 128, + 24, 0, 228, 160, 9, 0, + 0, 3, 1, 0, 1, 128, + 0, 0, 228, 128, 14, 0, + 228, 160, 11, 0, 0, 3, 1, 0, 1, 128, 1, 0, 0, 128, 243, 0, 85, 160, - 5, 0, 0, 3, 1, 0, - 1, 128, 2, 0, 0, 128, - 1, 0, 0, 128, 32, 0, - 0, 3, 2, 0, 1, 128, - 1, 0, 0, 128, 2, 0, - 255, 160, 5, 0, 0, 3, - 1, 0, 7, 128, 2, 0, - 0, 128, 9, 0, 228, 160, - 5, 0, 0, 3, 1, 0, - 7, 224, 1, 0, 228, 128, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 128, 24, 0, + 10, 0, 0, 3, 1, 0, + 8, 224, 1, 0, 0, 128, + 243, 0, 170, 160, 9, 0, + 0, 3, 1, 0, 1, 128, + 0, 0, 228, 128, 22, 0, 228, 160, 9, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 228, 128, 14, 0, 228, 160, - 11, 0, 0, 3, 1, 0, - 1, 128, 1, 0, 0, 128, - 243, 0, 85, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 1, 0, 0, 128, 243, 0, - 170, 160, 9, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 228, 128, 22, 0, 228, 160, - 9, 0, 0, 3, 1, 0, - 2, 128, 0, 0, 228, 128, - 23, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 128, 25, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 0, 128, 242, 0, 228, 160, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 0, 128, 1, 0, - 0, 2, 0, 0, 8, 224, - 0, 0, 255, 160, 1, 0, - 0, 2, 2, 0, 3, 224, - 2, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 44, 6, 0, 0, 64, 0, - 1, 0, 139, 1, 0, 0, - 89, 8, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 242, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 18, 16, 16, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 18, 16, 16, 0, - 4, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 4, 0, 0, 0, 38, 0, - 0, 8, 0, 208, 0, 0, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 16, 16, 0, - 3, 0, 0, 0, 1, 64, - 0, 0, 3, 0, 0, 0, - 56, 0, 0, 10, 242, 0, + 1, 0, 2, 128, 0, 0, + 228, 128, 23, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 128, + 25, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 0, 128, 242, 0, + 228, 160, 1, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 0, 128, + 1, 0, 0, 2, 0, 0, + 8, 224, 0, 0, 255, 160, + 1, 0, 0, 2, 2, 0, + 3, 224, 2, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 44, 6, 0, 0, + 64, 0, 1, 0, 139, 1, + 0, 0, 89, 8, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 242, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 114, 16, 16, 0, 1, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 95, 0, 0, 3, 18, 16, + 16, 0, 3, 0, 0, 0, + 95, 0, 0, 3, 18, 16, + 16, 0, 4, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 2, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 4, 0, 0, 0, + 38, 0, 0, 8, 0, 208, + 0, 0, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 16, + 16, 0, 3, 0, 0, 0, + 1, 64, 0, 0, 3, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 26, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 27, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, 6, 16, 16, 0, 4, 0, 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, + 0, 7, 34, 0, 16, 0, 2, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, + 70, 2, 16, 0, 3, 0, 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 1, 0, + 34, 0, 16, 0, 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 242, 0, - 16, 0, 3, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 27, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 28, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 7, - 34, 0, 16, 0, 2, 0, - 0, 0, 70, 18, 16, 0, - 1, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 17, 0, 0, 7, 34, 0, - 16, 0, 1, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 16, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 17, 0, 0, 7, 66, 0, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 17, 0, 0, 7, - 66, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 18, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 19, 0, + 70, 14, 16, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, + 19, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 21, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 0, 0, 20, 0, 0, 0, + 16, 0, 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 21, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 29, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 18, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 130, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 226, 0, 16, 0, - 2, 0, 0, 0, 246, 15, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 6, 137, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 50, 0, 0, 11, 114, 32, + 16, 0, 0, 9, 130, 0, 16, 0, 0, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 29, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 16, 16, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 18, 0, 16, 0, - 3, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 17, 0, 0, 8, 34, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 8, 226, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 137, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 16, + 16, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 18, 0, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 8, - 66, 0, 16, 0, 3, 0, + 34, 0, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 9, 226, 0, 16, 0, - 2, 0, 0, 0, 6, 9, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 6, 137, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 150, 7, - 16, 0, 2, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 226, 0, 16, 0, - 2, 0, 0, 0, 86, 14, + 16, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, + 3, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 0, 0, 0, 9, 226, 0, 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 6, 137, 32, 128, - 65, 0, 0, 0, 0, 0, + 6, 9, 16, 128, 65, 0, 0, 0, 3, 0, 0, 0, + 6, 137, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 150, 7, 16, 0, 2, 0, @@ -507,132 +867,147 @@ const BYTE SkinnedEffect_VSSkinnedOneLightOneBone[] = 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 226, 0, + 50, 0, 0, 11, 226, 0, 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 86, 14, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 150, 7, + 86, 14, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 6, 137, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 150, 7, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 52, 0, 0, 7, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 18, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 47, 0, - 0, 5, 18, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 226, 0, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 86, 14, + 16, 0, 2, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 150, 7, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 52, 0, + 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 18, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 47, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 25, 0, 0, 5, + 0, 0, 56, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 56, 0, 0, 8, 114, 32, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 142, + 0, 0, 0, 0, 9, 0, + 0, 0, 56, 0, 0, 8, + 114, 32, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 2, 0, 0, 0, 70, 16, + 2, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 5, 50, 32, 16, 0, 2, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 3, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, + 70, 16, 16, 0, 2, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 3, 0, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 17, 0, 0, 8, 130, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 25, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 184, 0, - 0, 0, 5, 0, 0, 0, - 8, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 24, 0, + 0, 0, 17, 0, 0, 8, + 130, 32, 16, 0, 3, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 184, 0, 0, 0, 5, 0, + 0, 0, 8, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 140, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 147, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 156, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 15, 1, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 15, 1, 0, 0, 169, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 15, 1, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 66, 76, + 69, 78, 68, 73, 78, 68, + 73, 67, 69, 83, 0, 66, + 76, 69, 78, 68, 87, 69, + 73, 71, 72, 84, 0, 171, + 171, 171, 79, 83, 71, 78, + 132, 0, 0, 0, 4, 0, + 0, 0, 8, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 15, 1, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 66, 76, 69, 78, - 68, 73, 78, 68, 73, 67, - 69, 83, 0, 66, 76, 69, - 78, 68, 87, 69, 73, 71, - 72, 84, 0, 171, 171, 171, - 79, 83, 71, 78, 132, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 12, 0, 0, + 119, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 110, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 119, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 171 + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightTwoBones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightTwoBones.inc index 9652cf93bd12bd171c4b0174632d283a09b6d3b6..7486b02a568b7ef03ed459acbb8ccfd947b3e2f4 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightTwoBones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedOneLightTwoBones.inc @@ -42,60 +42,98 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0.xy, v3, c243.x mova a0.xy, r0.yxzw mul r0, v4.y, c26[a0.x] - mad r0, c26[a0.y], v4.x, r0 - dp3 r1.x, v1, r0 - dp4 r0.x, v0, r0 + mad r0, c26[a0.y], v4.x, r0 // ::skinning<0,3,6,9> + +#line 56 + dp3 r1.x, v1, r0 // Skin::vin<4> + dp4 r0.x, v0, r0 // Skin::vin<0> + +#line 52 mul r2, v4.y, c27[a0.x] mul r3, v4.y, c28[a0.x] - mad r3, c28[a0.y], v4.x, r3 - mad r2, c27[a0.y], v4.x, r2 - dp3 r1.y, v1, r2 - dp4 r0.y, v0, r2 - dp3 r1.z, v1, r3 - dp4 r0.z, v0, r3 + mad r3, c28[a0.y], v4.x, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.y], v4.x, r2 // ::skinning<1,4,7,10> + +#line 56 + dp3 r1.y, v1, r2 // Skin::vin<5> + dp4 r0.y, v0, r2 // Skin::vin<1> + dp3 r1.z, v1, r3 // Skin::vin<6> + dp4 r0.z, v0, r3 // Skin::vin<2> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r2.x, r1, c19 dp3 r2.y, r1, c20 dp3 r2.z, r1, c21 - nrm r1.xyz, r2 - dp3 r1.w, -c3, r1 - sge r2.x, r1.w, c243.y - mul r1.w, r1.w, r2.x + nrm r1.xyz, r2 // ::worldNormal<0,1,2> + +#line 36 + dp3 r1.w, -c3, r1 // ::dotL<0> + +#line 39 + sge r2.x, r1.w, c243.y // ::zeroL<0> + mul r1.w, r1.w, r2.x // ::diffuse<0> + +#line 46 mul r2.yzw, r1.w, c6.xxyz - mov r3.xyz, c0 - mad oT0.xyz, r2.yzww, r3, c1 + mov r3.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r2.yzww, r3, c1 // ::VSSkinnedOneLightTwoBones<0,1,2> + +#line 57 mov r0.w, v0.w - dp4 r3.x, r0, c15 - dp4 r3.y, r0, c16 - dp4 r3.z, r0, c17 + dp4 r3.x, r0, c15 // ::pos_ws<0> + dp4 r3.y, r0, c16 // ::pos_ws<1> + dp4 r3.z, r0, c17 // ::pos_ws<2> add r2.yzw, -r3.xxyz, c12.xxyz - nrm r3.xyz, r2.yzww + nrm r3.xyz, r2.yzww // ::eyeVector<0,1,2> + +#line 33 add r2.yzw, r3.xxyz, -c3.xxyz - nrm r3.xyz, r2.yzww - dp3 r1.x, r3, r1 + nrm r3.xyz, r2.yzww // ::halfVectors<0,1,2> + +#line 37 + dp3 r1.x, r3, r1 // ::dotH<0> + +#line 42 max r1.x, r1.x, c243.y mul r1.x, r2.x, r1.x - pow r2.x, r1.x, c2.w + pow r2.x, r1.x, c2.w // ::specular<0> + +#line 47 mul r1.xyz, r2.x, c9 - mul oT1.xyz, r1, c2 - dp4 oPos.z, r0, c24 + mul oT1.xyz, r1, c2 // ::VSSkinnedOneLightTwoBones<4,5,6> + +#line 63 + dp4 oPos.z, r0, c24 // ::VSSkinnedOneLightTwoBones<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r1.x, r0, c14 max r1.x, r1.x, c243.y - min oT1.w, r1.x, c243.z - dp4 r1.x, r0, c22 - dp4 r1.y, r0, c23 - dp4 r0.x, r0, c25 - mad oPos.xy, r0.x, c242, r1 - mov oPos.w, r0.x - mov oT0.w, c0.w - mov oT2.xy, v2 + min oT1.w, r1.x, c243.z // ::VSSkinnedOneLightTwoBones<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r1.x, r0, c22 // ::vout<0> + dp4 r1.y, r0, c23 // ::vout<1> + dp4 r0.x, r0, c25 // ::vout<3> + +#line 125 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.x, c242, r1 // ::VSSkinnedOneLightTwoBones<10,11> + mov oPos.w, r0.x // ::VSSkinnedOneLightTwoBones<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c0.w // ::VSSkinnedOneLightTwoBones<3> + +#line 129 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mov oT2.xy, v2 // ::VSSkinnedOneLightTwoBones<8,9> // approximately 57 instruction slots used vs_4_0 @@ -167,17 +205,17 @@ ret const BYTE SkinnedEffect_VSSkinnedOneLightTwoBones[] = { - 68, 88, 66, 67, 116, 238, - 17, 228, 239, 21, 135, 196, - 157, 218, 29, 152, 151, 204, - 151, 178, 1, 0, 0, 0, - 252, 11, 0, 0, 4, 0, + 68, 88, 66, 67, 128, 106, + 85, 102, 37, 42, 216, 89, + 27, 53, 239, 87, 8, 117, + 194, 235, 1, 0, 0, 0, + 252, 19, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 224, 3, 0, 0, 176, 10, - 0, 0, 112, 11, 0, 0, - 65, 111, 110, 57, 168, 3, - 0, 0, 168, 3, 0, 0, - 0, 2, 254, 255, 116, 3, + 224, 11, 0, 0, 176, 18, + 0, 0, 112, 19, 0, 0, + 65, 111, 110, 57, 168, 11, + 0, 0, 168, 11, 0, 0, + 0, 2, 254, 255, 116, 11, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -185,364 +223,690 @@ const BYTE SkinnedEffect_VSSkinnedOneLightTwoBones[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 243, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 3, 128, - 3, 0, 228, 144, 243, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 3, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 4, 0, - 85, 144, 26, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 0, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 1, 128, - 1, 0, 228, 144, 0, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 228, 144, 0, 0, 228, 128, - 5, 0, 0, 4, 2, 0, - 15, 128, 4, 0, 85, 144, - 27, 32, 228, 160, 0, 0, - 0, 176, 5, 0, 0, 4, - 3, 0, 15, 128, 4, 0, - 85, 144, 28, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 2, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 2, 128, - 1, 0, 228, 144, 2, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 2, 0, 228, 128, + 0, 2, 254, 255, 254, 255, + 255, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 208, 7, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 55, 0, 0, 0, + 20, 1, 0, 0, 15, 0, + 0, 0, 164, 6, 0, 0, + 0, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 4, 8, + 0, 0, 0, 0, 255, 255, + 28, 8, 0, 0, 0, 0, + 255, 255, 40, 8, 0, 0, + 0, 0, 255, 255, 52, 8, + 0, 0, 0, 0, 255, 255, + 64, 8, 0, 0, 0, 0, + 255, 255, 76, 8, 0, 0, + 52, 0, 0, 0, 88, 8, + 0, 0, 52, 0, 0, 0, + 104, 8, 0, 0, 52, 0, + 0, 0, 116, 8, 0, 0, + 52, 0, 0, 0, 136, 8, + 0, 0, 56, 0, 0, 0, + 160, 8, 0, 0, 55, 0, + 0, 0, 176, 8, 0, 0, + 52, 0, 0, 0, 192, 8, + 0, 0, 52, 0, 0, 0, + 212, 8, 0, 0, 52, 0, + 0, 0, 232, 8, 0, 0, + 52, 0, 0, 0, 0, 9, + 0, 0, 56, 0, 0, 0, + 24, 9, 0, 0, 55, 0, + 0, 0, 40, 9, 0, 0, + 56, 0, 0, 0, 56, 9, + 0, 0, 55, 0, 0, 0, + 72, 9, 0, 0, 59, 0, + 1, 0, 88, 9, 0, 0, + 59, 0, 1, 0, 104, 9, + 0, 0, 59, 0, 1, 0, + 120, 9, 0, 0, 59, 0, + 1, 0, 136, 9, 0, 0, + 36, 0, 1, 0, 148, 9, + 0, 0, 39, 0, 1, 0, + 164, 9, 0, 0, 41, 0, + 1, 0, 180, 9, 0, 0, + 46, 0, 1, 0, 196, 9, + 0, 0, 46, 0, 1, 0, + 212, 9, 0, 0, 46, 0, + 1, 0, 224, 9, 0, 0, + 57, 0, 1, 0, 244, 9, + 0, 0, 57, 0, 1, 0, + 0, 10, 0, 0, 57, 0, + 1, 0, 16, 10, 0, 0, + 57, 0, 1, 0, 32, 10, + 0, 0, 58, 0, 1, 0, + 48, 10, 0, 0, 58, 0, + 1, 0, 64, 10, 0, 0, + 33, 0, 1, 0, 76, 10, + 0, 0, 33, 0, 1, 0, + 92, 10, 0, 0, 37, 0, + 1, 0, 104, 10, 0, 0, + 42, 0, 1, 0, 120, 10, + 0, 0, 42, 0, 1, 0, + 136, 10, 0, 0, 42, 0, + 1, 0, 152, 10, 0, 0, + 47, 0, 1, 0, 168, 10, + 0, 0, 47, 0, 1, 0, + 184, 10, 0, 0, 63, 0, + 1, 0, 200, 10, 0, 0, + 14, 0, 2, 0, 216, 10, + 0, 0, 14, 0, 2, 0, + 232, 10, 0, 0, 14, 0, + 2, 0, 248, 10, 0, 0, + 63, 0, 1, 0, 8, 11, + 0, 0, 63, 0, 1, 0, + 24, 11, 0, 0, 63, 0, + 1, 0, 40, 11, 0, 0, + 125, 0, 0, 0, 56, 11, + 0, 0, 125, 0, 0, 0, + 76, 11, 0, 0, 46, 0, + 1, 0, 88, 11, 0, 0, + 129, 0, 0, 0, 100, 11, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 79, 110, 101, + 76, 105, 103, 104, 116, 84, + 119, 111, 66, 111, 110, 101, + 115, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 83, 112, + 101, 99, 117, 108, 97, 114, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 26, 3, + 0, 0, 36, 3, 0, 0, + 52, 3, 0, 0, 36, 3, + 0, 0, 61, 3, 0, 0, + 72, 3, 0, 0, 88, 3, + 0, 0, 36, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 14, 0, 1, 0, 4, 0, + 100, 3, 0, 0, 29, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 43, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 44, 0, + 0, 0, 255, 255, 255, 255, + 12, 0, 255, 255, 47, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 7, 0, 51, 0, + 0, 0, 10, 0, 11, 0, + 255, 255, 255, 255, 52, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 53, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 3, 0, 54, 0, + 0, 0, 8, 0, 9, 0, + 255, 255, 255, 255, 100, 105, + 102, 102, 117, 115, 101, 0, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 26, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 0, 0, 100, 111, + 116, 72, 0, 171, 171, 171, + 38, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 100, 111, 116, 76, 0, 171, + 171, 171, 24, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 0, 0, 101, 121, 101, 86, + 101, 99, 116, 111, 114, 0, + 171, 171, 35, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 104, 97, 108, 102, + 86, 101, 99, 116, 111, 114, + 115, 0, 3, 0, 3, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 112, 111, 115, 95, 119, 115, + 0, 171, 31, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 32, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 33, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 14, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 15, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 115, 112, 101, 99, 117, 108, + 97, 114, 0, 171, 171, 171, + 41, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 83, 107, 105, 110, 0, 118, + 105, 110, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 111, 114, 109, 97, 108, + 0, 73, 110, 100, 105, 99, + 101, 115, 0, 171, 171, 171, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 87, 101, + 105, 103, 104, 116, 115, 0, + 13, 5, 0, 0, 36, 3, + 0, 0, 22, 5, 0, 0, + 252, 3, 0, 0, 61, 3, + 0, 0, 72, 3, 0, 0, + 29, 5, 0, 0, 40, 5, + 0, 0, 56, 5, 0, 0, + 36, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 64, 5, + 0, 0, 10, 0, 0, 0, + 4, 0, 255, 255, 255, 255, + 255, 255, 11, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 16, 0, 0, 0, + 255, 255, 5, 0, 255, 255, + 255, 255, 17, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 18, 0, 0, 0, + 255, 255, 255, 255, 6, 0, + 255, 255, 19, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 5, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 16, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 70, 111, 103, 70, + 97, 99, 116, 111, 114, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 6, 0, 0, 36, 3, + 0, 0, 26, 3, 0, 0, + 36, 3, 0, 0, 52, 3, + 0, 0, 252, 3, 0, 0, + 8, 6, 0, 0, 20, 6, + 0, 0, 5, 0, 0, 0, + 1, 0, 12, 0, 1, 0, + 4, 0, 36, 6, 0, 0, + 48, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 49, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 50, 0, 0, 0, 3, 0, + 255, 255, 255, 255, 255, 255, + 119, 111, 114, 108, 100, 78, + 111, 114, 109, 97, 108, 0, + 23, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 122, 101, 114, 111, 76, 0, + 171, 171, 25, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 204, 2, 0, 0, + 215, 2, 0, 0, 228, 2, + 0, 0, 1, 0, 0, 0, + 244, 2, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 132, 3, 0, 0, 8, 0, + 0, 0, 148, 3, 0, 0, + 0, 0, 0, 0, 244, 3, + 0, 0, 252, 3, 0, 0, + 1, 0, 0, 0, 12, 4, + 0, 0, 0, 0, 0, 0, + 24, 4, 0, 0, 252, 3, + 0, 0, 1, 0, 0, 0, + 32, 4, 0, 0, 0, 0, + 0, 0, 44, 4, 0, 0, + 252, 3, 0, 0, 1, 0, + 0, 0, 52, 4, 0, 0, + 0, 0, 0, 0, 64, 4, + 0, 0, 252, 3, 0, 0, + 1, 0, 0, 0, 76, 4, + 0, 0, 0, 0, 0, 0, + 88, 4, 0, 0, 100, 4, + 0, 0, 1, 0, 0, 0, + 116, 4, 0, 0, 0, 0, + 0, 0, 128, 4, 0, 0, + 36, 3, 0, 0, 3, 0, + 0, 0, 136, 4, 0, 0, + 0, 0, 0, 0, 172, 4, + 0, 0, 184, 4, 0, 0, + 3, 0, 0, 0, 200, 4, + 0, 0, 0, 0, 0, 0, + 236, 4, 0, 0, 252, 3, + 0, 0, 1, 0, 0, 0, + 248, 4, 0, 0, 4, 5, + 0, 0, 9, 5, 0, 0, + 104, 5, 0, 0, 6, 0, + 0, 0, 120, 5, 0, 0, + 0, 3, 0, 0, 9, 5, + 0, 0, 104, 5, 0, 0, + 5, 0, 0, 0, 192, 5, + 0, 0, 0, 0, 0, 0, + 252, 5, 0, 0, 68, 6, + 0, 0, 3, 0, 0, 0, + 84, 6, 0, 0, 0, 0, + 0, 0, 120, 6, 0, 0, + 252, 3, 0, 0, 1, 0, + 0, 0, 132, 6, 0, 0, + 0, 0, 0, 0, 144, 6, + 0, 0, 252, 3, 0, 0, + 1, 0, 0, 0, 152, 6, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 243, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 3, 128, 3, 0, 228, 144, + 243, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 3, 176, + 0, 0, 225, 128, 5, 0, + 0, 4, 0, 0, 15, 128, + 4, 0, 85, 144, 26, 32, + 228, 160, 0, 0, 0, 176, + 4, 0, 0, 5, 0, 0, + 15, 128, 26, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 0, 0, 228, 128, + 8, 0, 0, 3, 1, 0, + 1, 128, 1, 0, 228, 144, + 0, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 144, 0, 0, + 228, 128, 5, 0, 0, 4, + 2, 0, 15, 128, 4, 0, + 85, 144, 27, 32, 228, 160, + 0, 0, 0, 176, 5, 0, + 0, 4, 3, 0, 15, 128, + 4, 0, 85, 144, 28, 32, + 228, 160, 0, 0, 0, 176, + 4, 0, 0, 5, 3, 0, + 15, 128, 28, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 3, 0, 228, 128, + 4, 0, 0, 5, 2, 0, + 15, 128, 27, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 2, 0, 228, 128, 8, 0, 0, 3, 1, 0, - 4, 128, 1, 0, 228, 144, - 3, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 3, 0, + 2, 128, 1, 0, 228, 144, + 2, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 2, 128, + 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, 0, 3, - 2, 0, 1, 128, 1, 0, - 228, 128, 19, 0, 228, 160, + 1, 0, 4, 128, 1, 0, + 228, 144, 3, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 228, 144, + 3, 0, 228, 128, 8, 0, + 0, 3, 2, 0, 1, 128, + 1, 0, 228, 128, 19, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 2, 128, 1, 0, + 228, 128, 20, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 2, 128, 1, 0, 228, 128, - 20, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 128, - 1, 0, 228, 128, 21, 0, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 128, 8, 0, 0, 3, - 1, 0, 8, 128, 3, 0, - 228, 161, 1, 0, 228, 128, - 13, 0, 0, 3, 2, 0, - 1, 128, 1, 0, 255, 128, - 243, 0, 85, 160, 5, 0, + 4, 128, 1, 0, 228, 128, + 21, 0, 228, 160, 36, 0, + 0, 2, 1, 0, 7, 128, + 2, 0, 228, 128, 8, 0, 0, 3, 1, 0, 8, 128, - 1, 0, 255, 128, 2, 0, - 0, 128, 5, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 255, 128, 6, 0, 144, 160, - 1, 0, 0, 2, 3, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 224, 2, 0, 249, 128, - 3, 0, 228, 128, 1, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 3, 0, 1, 128, 0, 0, - 228, 128, 15, 0, 228, 160, + 3, 0, 228, 161, 1, 0, + 228, 128, 13, 0, 0, 3, + 2, 0, 1, 128, 1, 0, + 255, 128, 243, 0, 85, 160, + 5, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 255, 128, + 2, 0, 0, 128, 5, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 255, 128, 6, 0, + 144, 160, 1, 0, 0, 2, + 3, 0, 7, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 7, 224, 2, 0, + 249, 128, 3, 0, 228, 128, + 1, 0, 228, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 3, 0, 1, 128, + 0, 0, 228, 128, 15, 0, + 228, 160, 9, 0, 0, 3, + 3, 0, 2, 128, 0, 0, + 228, 128, 16, 0, 228, 160, 9, 0, 0, 3, 3, 0, - 2, 128, 0, 0, 228, 128, - 16, 0, 228, 160, 9, 0, - 0, 3, 3, 0, 4, 128, - 0, 0, 228, 128, 17, 0, - 228, 160, 2, 0, 0, 3, + 4, 128, 0, 0, 228, 128, + 17, 0, 228, 160, 2, 0, + 0, 3, 2, 0, 14, 128, + 3, 0, 144, 129, 12, 0, + 144, 160, 36, 0, 0, 2, + 3, 0, 7, 128, 2, 0, + 249, 128, 2, 0, 0, 3, 2, 0, 14, 128, 3, 0, - 144, 129, 12, 0, 144, 160, + 144, 128, 3, 0, 144, 161, 36, 0, 0, 2, 3, 0, 7, 128, 2, 0, 249, 128, - 2, 0, 0, 3, 2, 0, - 14, 128, 3, 0, 144, 128, - 3, 0, 144, 161, 36, 0, - 0, 2, 3, 0, 7, 128, - 2, 0, 249, 128, 8, 0, + 8, 0, 0, 3, 1, 0, + 1, 128, 3, 0, 228, 128, + 1, 0, 228, 128, 11, 0, + 0, 3, 1, 0, 1, 128, + 1, 0, 0, 128, 243, 0, + 85, 160, 5, 0, 0, 3, + 1, 0, 1, 128, 2, 0, + 0, 128, 1, 0, 0, 128, + 32, 0, 0, 3, 2, 0, + 1, 128, 1, 0, 0, 128, + 2, 0, 255, 160, 5, 0, + 0, 3, 1, 0, 7, 128, + 2, 0, 0, 128, 9, 0, + 228, 160, 5, 0, 0, 3, + 1, 0, 7, 224, 1, 0, + 228, 128, 2, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 4, 192, 0, 0, 228, 128, + 24, 0, 228, 160, 9, 0, 0, 3, 1, 0, 1, 128, - 3, 0, 228, 128, 1, 0, - 228, 128, 11, 0, 0, 3, + 0, 0, 228, 128, 14, 0, + 228, 160, 11, 0, 0, 3, 1, 0, 1, 128, 1, 0, 0, 128, 243, 0, 85, 160, - 5, 0, 0, 3, 1, 0, - 1, 128, 2, 0, 0, 128, - 1, 0, 0, 128, 32, 0, - 0, 3, 2, 0, 1, 128, - 1, 0, 0, 128, 2, 0, - 255, 160, 5, 0, 0, 3, - 1, 0, 7, 128, 2, 0, - 0, 128, 9, 0, 228, 160, - 5, 0, 0, 3, 1, 0, - 7, 224, 1, 0, 228, 128, - 2, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 192, - 0, 0, 228, 128, 24, 0, + 10, 0, 0, 3, 1, 0, + 8, 224, 1, 0, 0, 128, + 243, 0, 170, 160, 9, 0, + 0, 3, 1, 0, 1, 128, + 0, 0, 228, 128, 22, 0, 228, 160, 9, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 228, 128, 14, 0, 228, 160, - 11, 0, 0, 3, 1, 0, - 1, 128, 1, 0, 0, 128, - 243, 0, 85, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 1, 0, 0, 128, 243, 0, - 170, 160, 9, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 228, 128, 22, 0, 228, 160, - 9, 0, 0, 3, 1, 0, - 2, 128, 0, 0, 228, 128, - 23, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 228, 128, 25, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 0, 128, 242, 0, 228, 160, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 0, 128, 1, 0, - 0, 2, 0, 0, 8, 224, - 0, 0, 255, 160, 1, 0, - 0, 2, 2, 0, 3, 224, - 2, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 200, 6, 0, 0, 64, 0, - 1, 0, 178, 1, 0, 0, - 89, 8, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 242, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 2, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 4, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 4, 0, 0, 0, 38, 0, - 0, 11, 0, 208, 0, 0, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 3, 0, 0, 0, 2, 64, + 1, 0, 2, 128, 0, 0, + 228, 128, 23, 0, 228, 160, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 128, + 25, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 0, 128, 242, 0, + 228, 160, 1, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 0, 128, + 1, 0, 0, 2, 0, 0, + 8, 224, 0, 0, 255, 160, + 1, 0, 0, 2, 2, 0, + 3, 224, 2, 0, 228, 144, + 255, 255, 0, 0, 83, 72, + 68, 82, 200, 6, 0, 0, + 64, 0, 1, 0, 178, 1, + 0, 0, 89, 8, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 242, 0, 0, 0, + 95, 0, 0, 3, 242, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 114, 16, + 16, 0, 1, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 2, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 3, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 4, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 2, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 4, 0, 0, 0, + 38, 0, 0, 11, 0, 208, + 0, 0, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 3, 0, 0, 0, + 2, 64, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 21, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 26, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 21, 16, 0, + 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 26, 0, 0, 0, 10, 0, + 26, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 70, 18, + 50, 0, 0, 12, 242, 0, 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 70, 142, 32, 6, 0, 0, + 0, 0, 26, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 242, 0, - 16, 0, 3, 0, 0, 0, - 86, 21, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 27, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, + 16, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 86, 21, 16, 0, + 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 27, 0, 0, 0, 10, 0, + 27, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 0, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 17, 0, 0, 7, - 34, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 50, 0, 0, 12, 242, 0, 16, 0, 3, 0, 0, 0, - 56, 0, 0, 10, 242, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 27, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 14, 16, 0, 3, 0, 0, 0, - 86, 21, 16, 0, 4, 0, - 0, 0, 70, 142, 32, 6, - 0, 0, 0, 0, 28, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 12, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 142, + 16, 0, 0, 7, 34, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 34, 0, 16, 0, + 1, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 56, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 86, 21, 16, 0, + 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 28, 0, 0, 0, 10, 0, + 28, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 66, 0, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 17, 0, 0, 7, - 66, 0, 16, 0, 1, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 50, 0, 0, 12, 242, 0, 16, 0, 0, 0, 0, 0, - 16, 0, 0, 8, 18, 0, + 70, 142, 32, 6, 0, 0, + 0, 0, 28, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 66, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 7, 66, 0, 16, 0, + 1, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 19, 0, + 70, 14, 16, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, + 18, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, + 19, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 21, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 0, 0, 20, 0, 0, 0, + 16, 0, 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 9, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 21, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 29, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 18, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 130, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 226, 0, 16, 0, - 2, 0, 0, 0, 246, 15, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 6, 137, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 50, 0, 0, 11, 114, 32, + 16, 0, 0, 9, 130, 0, 16, 0, 0, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, + 70, 130, 32, 128, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 130, 32, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 29, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 16, 16, 0, - 0, 0, 0, 0, 17, 0, - 0, 8, 18, 0, 16, 0, - 3, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 17, 0, 0, 8, 34, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 8, 226, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 6, 137, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 16, + 16, 0, 0, 0, 0, 0, + 17, 0, 0, 8, 18, 0, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 8, - 66, 0, 16, 0, 3, 0, + 34, 0, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 9, 226, 0, 16, 0, - 2, 0, 0, 0, 6, 9, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 6, 137, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 150, 7, - 16, 0, 2, 0, 0, 0, - 150, 7, 16, 0, 2, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 11, 226, 0, 16, 0, - 2, 0, 0, 0, 86, 14, + 16, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, + 3, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 0, 0, 0, 9, 226, 0, 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 6, 137, 32, 128, - 65, 0, 0, 0, 0, 0, + 6, 9, 16, 128, 65, 0, 0, 0, 3, 0, 0, 0, + 6, 137, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 150, 7, 16, 0, 2, 0, @@ -551,132 +915,147 @@ const BYTE SkinnedEffect_VSSkinnedOneLightTwoBones[] = 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 226, 0, + 50, 0, 0, 11, 226, 0, 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 86, 14, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 150, 7, + 86, 14, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 6, 137, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, + 0, 0, 150, 7, 16, 0, + 2, 0, 0, 0, 150, 7, 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 52, 0, 0, 7, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 18, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 47, 0, - 0, 5, 18, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 226, 0, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 86, 14, + 16, 0, 2, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 150, 7, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 52, 0, + 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 18, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 47, 0, 0, 5, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 25, 0, 0, 5, + 0, 0, 56, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 25, 0, + 0, 5, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 56, 0, 0, 8, 114, 32, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, + 56, 0, 0, 8, 114, 0, + 16, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 17, 32, 0, 8, - 130, 32, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 142, + 0, 0, 0, 0, 9, 0, + 0, 0, 56, 0, 0, 8, + 114, 32, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 2, 0, 0, 0, 70, 16, + 2, 0, 0, 0, 17, 32, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 5, 50, 32, 16, 0, 2, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 3, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 22, 0, + 70, 16, 16, 0, 2, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 3, 0, + 18, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 22, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 17, 0, 0, 8, 130, 32, + 0, 0, 23, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 25, 0, - 0, 0, 62, 0, 0, 1, - 73, 83, 71, 78, 184, 0, - 0, 0, 5, 0, 0, 0, - 8, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 24, 0, + 0, 0, 17, 0, 0, 8, + 130, 32, 16, 0, 3, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 184, 0, 0, 0, 5, 0, + 0, 0, 8, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 140, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 7, 7, 0, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 7, 7, 0, 0, 147, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 3, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 3, 0, 0, 156, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 15, 3, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 15, 3, 0, 0, 169, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 15, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 79, 82, 77, 65, 76, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 66, 76, + 69, 78, 68, 73, 78, 68, + 73, 67, 69, 83, 0, 66, + 76, 69, 78, 68, 87, 69, + 73, 71, 72, 84, 0, 171, + 171, 171, 79, 83, 71, 78, + 132, 0, 0, 0, 4, 0, + 0, 0, 8, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 15, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 78, 79, - 82, 77, 65, 76, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 66, 76, 69, 78, - 68, 73, 78, 68, 73, 67, - 69, 83, 0, 66, 76, 69, - 78, 68, 87, 69, 73, 71, - 72, 84, 0, 171, 171, 171, - 79, 83, 71, 78, 132, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 104, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 3, 12, 0, 0, + 119, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 110, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 3, 12, 0, 0, 119, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 67, 79, - 76, 79, 82, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 171 + 3, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingFourBones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingFourBones.inc index 573d8941c888c65b751f54e8fb9971a72a179875..36a12f390127bddfec2cb785e4ae891f109904c6 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingFourBones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingFourBones.inc @@ -43,53 +43,73 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0, v3, c243.x mova a0, r0.yxzw mul r1, v4.y, c26[a0.x] - mad r1, c26[a0.y], v4.x, r1 - mad r0, c26[a0.z], v4.z, r1 - mad r0, c26[a0.w], v4.w, r0 - dp4 r1.x, v0, r0 - dp3 r0.x, v1, r0 + mad r1, c26[a0.y], v4.x, r1 // ::skinning<0,3,6,9> + mad r0, c26[a0.z], v4.z, r1 // ::skinning<0,3,6,9> + mad r0, c26[a0.w], v4.w, r0 // ::skinning<0,3,6,9> + +#line 55 + dp4 r1.x, v0, r0 // Skin::vin<0> + dp3 r0.x, v1, r0 // Skin::vin<4> + +#line 52 mul r2, v4.y, c27[a0.x] mul r3, v4.y, c28[a0.x] - mad r3, c28[a0.y], v4.x, r3 - mad r2, c27[a0.y], v4.x, r2 - mad r2, c27[a0.z], v4.z, r2 - mad r3, c28[a0.z], v4.z, r3 - mad r3, c28[a0.w], v4.w, r3 - mad r2, c27[a0.w], v4.w, r2 - dp4 r1.y, v0, r2 - dp3 r0.y, v1, r2 - dp4 r1.z, v0, r3 - dp3 r0.z, v1, r3 + mad r3, c28[a0.y], v4.x, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.y], v4.x, r2 // ::skinning<1,4,7,10> + mad r2, c27[a0.z], v4.z, r2 // ::skinning<1,4,7,10> + mad r3, c28[a0.z], v4.z, r3 // ::skinning<2,5,8,11> + mad r3, c28[a0.w], v4.w, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.w], v4.w, r2 // ::skinning<1,4,7,10> + +#line 55 + dp4 r1.y, v0, r2 // Skin::vin<1> + dp3 r0.y, v1, r2 // Skin::vin<5> + dp4 r1.z, v0, r3 // Skin::vin<2> + dp3 r0.z, v1, r3 // Skin::vin<6> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mov r1.w, v0.w - dp4 oPos.z, r1, c24 - dp4 oT1.x, r1, c15 - dp4 oT1.y, r1, c16 - dp4 oT1.z, r1, c17 + dp4 oPos.z, r1, c24 // ::VSSkinnedPixelLightingFourBones<15> + dp4 oT1.x, r1, c15 // ::VSSkinnedPixelLightingFourBones<2> + dp4 oT1.y, r1, c16 // ::VSSkinnedPixelLightingFourBones<3> + dp4 oT1.z, r1, c17 // ::VSSkinnedPixelLightingFourBones<4> dp3 r2.x, r0, c19 dp3 r2.y, r0, c20 dp3 r2.z, r0, c21 dp3 r0.x, r2, r2 rsq r0.x, r0.x - mul oT2.xyz, r0.x, r2 + mul oT2.xyz, r0.x, r2 // ::VSSkinnedPixelLightingFourBones<6,7,8> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, r1, c14 max r0.x, r0.x, c243.y - min oT1.w, r0.x, c243.z - dp4 r0.x, r1, c22 - dp4 r0.y, r1, c23 - dp4 r0.z, r1, c25 - mad oPos.xy, r0.z, c242, r0 - mov oPos.w, r0.z - mov oT0.xy, v2 + min oT1.w, r0.x, c243.z // ::VSSkinnedPixelLightingFourBones<5> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, r1, c22 // ::vout<0> + dp4 r0.y, r1, c23 // ::vout<1> + dp4 r0.z, r1, c25 // ::vout<3> + +#line 191 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.z, c242, r0 // ::VSSkinnedPixelLightingFourBones<13,14> + mov oPos.w, r0.z // ::VSSkinnedPixelLightingFourBones<16> + +#line 195 + mov oT0.xy, v2 // ::VSSkinnedPixelLightingFourBones<0,1> + +#line 200 mov r0.yz, c243 - mad oT3, c0.w, r0.yyyz, r0.zzzy + mad oT3, c0.w, r0.yyyz, r0.zzzy // ::VSSkinnedPixelLightingFourBones<9,10,11,12> // approximately 42 instruction slots used vs_4_0 @@ -148,17 +168,17 @@ ret const BYTE SkinnedEffect_VSSkinnedPixelLightingFourBones[] = { - 68, 88, 66, 67, 233, 44, - 158, 107, 210, 54, 99, 13, - 195, 145, 49, 151, 59, 119, - 254, 187, 1, 0, 0, 0, - 192, 10, 0, 0, 4, 0, + 68, 88, 66, 67, 96, 157, + 87, 196, 38, 94, 105, 173, + 51, 47, 110, 253, 0, 184, + 79, 144, 1, 0, 0, 0, + 44, 17, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 172, 3, 0, 0, 92, 9, - 0, 0, 28, 10, 0, 0, - 65, 111, 110, 57, 116, 3, - 0, 0, 116, 3, 0, 0, - 0, 2, 254, 255, 64, 3, + 24, 10, 0, 0, 200, 15, + 0, 0, 136, 16, 0, 0, + 65, 111, 110, 57, 224, 9, + 0, 0, 224, 9, 0, 0, + 0, 2, 254, 255, 172, 9, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -166,7 +186,281 @@ const BYTE SkinnedEffect_VSSkinnedPixelLightingFourBones[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 154, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 60, 6, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 48, 0, 0, 0, + 20, 1, 0, 0, 5, 0, + 0, 0, 216, 5, 0, 0, + 148, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 112, 6, + 0, 0, 0, 0, 255, 255, + 136, 6, 0, 0, 0, 0, + 255, 255, 148, 6, 0, 0, + 0, 0, 255, 255, 160, 6, + 0, 0, 0, 0, 255, 255, + 172, 6, 0, 0, 0, 0, + 255, 255, 184, 6, 0, 0, + 52, 0, 0, 0, 196, 6, + 0, 0, 52, 0, 0, 0, + 212, 6, 0, 0, 52, 0, + 0, 0, 224, 6, 0, 0, + 52, 0, 0, 0, 244, 6, + 0, 0, 52, 0, 0, 0, + 12, 7, 0, 0, 52, 0, + 0, 0, 36, 7, 0, 0, + 55, 0, 0, 0, 60, 7, + 0, 0, 56, 0, 0, 0, + 76, 7, 0, 0, 52, 0, + 0, 0, 92, 7, 0, 0, + 52, 0, 0, 0, 112, 7, + 0, 0, 52, 0, 0, 0, + 132, 7, 0, 0, 52, 0, + 0, 0, 156, 7, 0, 0, + 52, 0, 0, 0, 180, 7, + 0, 0, 52, 0, 0, 0, + 204, 7, 0, 0, 52, 0, + 0, 0, 228, 7, 0, 0, + 52, 0, 0, 0, 252, 7, + 0, 0, 55, 0, 0, 0, + 20, 8, 0, 0, 56, 0, + 0, 0, 36, 8, 0, 0, + 55, 0, 0, 0, 52, 8, + 0, 0, 56, 0, 0, 0, + 68, 8, 0, 0, 85, 0, + 1, 0, 84, 8, 0, 0, + 85, 0, 1, 0, 96, 8, + 0, 0, 86, 0, 1, 0, + 112, 8, 0, 0, 86, 0, + 1, 0, 128, 8, 0, 0, + 86, 0, 1, 0, 144, 8, + 0, 0, 87, 0, 1, 0, + 160, 8, 0, 0, 87, 0, + 1, 0, 176, 8, 0, 0, + 87, 0, 1, 0, 192, 8, + 0, 0, 87, 0, 1, 0, + 208, 8, 0, 0, 87, 0, + 1, 0, 224, 8, 0, 0, + 87, 0, 1, 0, 236, 8, + 0, 0, 14, 0, 2, 0, + 252, 8, 0, 0, 14, 0, + 2, 0, 12, 9, 0, 0, + 14, 0, 2, 0, 28, 9, + 0, 0, 85, 0, 1, 0, + 44, 9, 0, 0, 85, 0, + 1, 0, 60, 9, 0, 0, + 85, 0, 1, 0, 76, 9, + 0, 0, 191, 0, 0, 0, + 92, 9, 0, 0, 191, 0, + 0, 0, 112, 9, 0, 0, + 195, 0, 0, 0, 124, 9, + 0, 0, 200, 0, 0, 0, + 136, 9, 0, 0, 200, 0, + 0, 0, 148, 9, 0, 0, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 80, 105, 120, + 101, 108, 76, 105, 103, 104, + 116, 105, 110, 103, 70, 111, + 117, 114, 66, 111, 110, 101, + 115, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 87, 83, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 78, 111, + 114, 109, 97, 108, 87, 83, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 80, 111, + 115, 105, 116, 105, 111, 110, + 80, 83, 0, 171, 180, 2, + 0, 0, 192, 2, 0, 0, + 208, 2, 0, 0, 220, 2, + 0, 0, 236, 2, 0, 0, + 248, 2, 0, 0, 8, 3, + 0, 0, 220, 2, 0, 0, + 16, 3, 0, 0, 220, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 28, 3, 0, 0, + 27, 0, 0, 0, 255, 255, + 255, 255, 15, 0, 255, 255, + 28, 0, 0, 0, 2, 0, + 255, 255, 255, 255, 255, 255, + 29, 0, 0, 0, 255, 255, + 3, 0, 255, 255, 255, 255, + 30, 0, 0, 0, 255, 255, + 255, 255, 4, 0, 255, 255, + 36, 0, 0, 0, 6, 0, + 7, 0, 8, 0, 255, 255, + 39, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 5, 0, + 43, 0, 0, 0, 13, 0, + 14, 0, 255, 255, 255, 255, + 44, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 16, 0, + 45, 0, 0, 0, 0, 0, + 1, 0, 255, 255, 255, 255, + 47, 0, 0, 0, 9, 0, + 10, 0, 11, 0, 12, 0, + 115, 107, 105, 110, 110, 105, + 110, 103, 0, 171, 171, 171, + 3, 0, 3, 0, 4, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 3, 0, + 6, 0, 9, 0, 10, 0, + 0, 0, 0, 0, 3, 0, + 6, 0, 9, 0, 11, 0, + 0, 0, 0, 0, 3, 0, + 6, 0, 9, 0, 16, 0, + 0, 0, 2, 0, 5, 0, + 8, 0, 11, 0, 17, 0, + 0, 0, 1, 0, 4, 0, + 7, 0, 10, 0, 18, 0, + 0, 0, 1, 0, 4, 0, + 7, 0, 10, 0, 19, 0, + 0, 0, 2, 0, 5, 0, + 8, 0, 11, 0, 20, 0, + 0, 0, 2, 0, 5, 0, + 8, 0, 11, 0, 21, 0, + 0, 0, 1, 0, 4, 0, + 7, 0, 10, 0, 83, 107, + 105, 110, 0, 118, 105, 110, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 111, + 114, 109, 97, 108, 0, 73, + 110, 100, 105, 99, 101, 115, + 0, 171, 171, 171, 1, 0, + 2, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 87, 101, 105, 103, + 104, 116, 115, 0, 93, 4, + 0, 0, 220, 2, 0, 0, + 102, 4, 0, 0, 248, 2, + 0, 0, 180, 2, 0, 0, + 192, 2, 0, 0, 109, 4, + 0, 0, 120, 4, 0, 0, + 136, 4, 0, 0, 220, 2, + 0, 0, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 144, 4, 0, 0, + 12, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 0, 0, 4, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 23, 0, 0, 0, 255, 255, + 5, 0, 255, 255, 255, 255, + 24, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 25, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 255, 255, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 4, 0, 0, 0, 9, 0, + 10, 0, 11, 0, 12, 0, + 5, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 16, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 80, 111, 115, 95, 119, 115, + 0, 78, 111, 114, 109, 97, + 108, 95, 119, 115, 0, 70, + 111, 103, 70, 97, 99, 116, + 111, 114, 0, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 81, 5, 0, 0, + 220, 2, 0, 0, 88, 5, + 0, 0, 248, 2, 0, 0, + 95, 5, 0, 0, 248, 2, + 0, 0, 105, 5, 0, 0, + 116, 5, 0, 0, 5, 0, + 0, 0, 1, 0, 11, 0, + 1, 0, 4, 0, 132, 5, + 0, 0, 40, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 41, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 42, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 255, 255, 0, 0, 0, 0, + 148, 2, 0, 0, 68, 3, + 0, 0, 10, 0, 0, 0, + 84, 3, 0, 0, 0, 0, + 0, 0, 204, 3, 0, 0, + 216, 3, 0, 0, 9, 0, + 0, 0, 232, 3, 0, 0, + 84, 4, 0, 0, 89, 4, + 0, 0, 184, 4, 0, 0, + 6, 0, 0, 0, 200, 4, + 0, 0, 148, 2, 0, 0, + 89, 4, 0, 0, 184, 4, + 0, 0, 5, 0, 0, 0, + 16, 5, 0, 0, 0, 0, + 0, 0, 76, 5, 0, 0, + 164, 5, 0, 0, 3, 0, + 0, 0, 180, 5, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 243, 0, 15, 160, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 128, 63, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingOneBone.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingOneBone.inc index 837d71861738818bdb7834a4fcc34ac733f6ef52..a142a541fc8bb355a0f1c5a929c3f52b9a73cdbc 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingOneBone.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingOneBone.inc @@ -43,44 +43,64 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0.x, v3.x, c243.x mova a0.x, r0.x - mul r0, v4.x, c26[a0.x] - dp4 r1.x, v0, r0 - dp3 r0.x, v1, r0 - mul r2, v4.x, c27[a0.x] - mul r3, v4.x, c28[a0.x] - dp4 r1.y, v0, r2 - dp3 r0.y, v1, r2 - dp4 r1.z, v0, r3 - dp3 r0.z, v1, r3 + mul r0, v4.x, c26[a0.x] // ::skinning<0,3,6,9> + +#line 55 + dp4 r1.x, v0, r0 // Skin::vin<0> + dp3 r0.x, v1, r0 // Skin::vin<4> + +#line 52 + mul r2, v4.x, c27[a0.x] // ::skinning<1,4,7,10> + mul r3, v4.x, c28[a0.x] // ::skinning<2,5,8,11> + +#line 55 + dp4 r1.y, v0, r2 // Skin::vin<1> + dp3 r0.y, v1, r2 // Skin::vin<5> + dp4 r1.z, v0, r3 // Skin::vin<2> + dp3 r0.z, v1, r3 // Skin::vin<6> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mov r1.w, v0.w - dp4 oPos.z, r1, c24 - dp4 oT1.x, r1, c15 - dp4 oT1.y, r1, c16 - dp4 oT1.z, r1, c17 + dp4 oPos.z, r1, c24 // ::VSSkinnedPixelLightingOneBone<15> + dp4 oT1.x, r1, c15 // ::VSSkinnedPixelLightingOneBone<2> + dp4 oT1.y, r1, c16 // ::VSSkinnedPixelLightingOneBone<3> + dp4 oT1.z, r1, c17 // ::VSSkinnedPixelLightingOneBone<4> dp3 r2.x, r0, c19 dp3 r2.y, r0, c20 dp3 r2.z, r0, c21 dp3 r0.x, r2, r2 rsq r0.x, r0.x - mul oT2.xyz, r0.x, r2 + mul oT2.xyz, r0.x, r2 // ::VSSkinnedPixelLightingOneBone<6,7,8> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, r1, c14 max r0.x, r0.x, c243.y - min oT1.w, r0.x, c243.z - dp4 r0.x, r1, c22 - dp4 r0.y, r1, c23 - dp4 r0.z, r1, c25 - mad oPos.xy, r0.z, c242, r0 - mov oPos.w, r0.z - mov oT0.xy, v2 + min oT1.w, r0.x, c243.z // ::VSSkinnedPixelLightingOneBone<5> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, r1, c22 // ::vout<0> + dp4 r0.y, r1, c23 // ::vout<1> + dp4 r0.z, r1, c25 // ::vout<3> + +#line 157 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.z, c242, r0 // ::VSSkinnedPixelLightingOneBone<13,14> + mov oPos.w, r0.z // ::VSSkinnedPixelLightingOneBone<16> + +#line 161 + mov oT0.xy, v2 // ::VSSkinnedPixelLightingOneBone<0,1> + +#line 166 mov r0.yz, c243 - mad oT3, c0.w, r0.yyyz, r0.zzzy + mad oT3, c0.w, r0.yyyz, r0.zzzy // ::VSSkinnedPixelLightingOneBone<9,10,11,12> // approximately 33 instruction slots used vs_4_0 @@ -130,17 +150,17 @@ ret const BYTE SkinnedEffect_VSSkinnedPixelLightingOneBone[] = { - 68, 88, 66, 67, 41, 197, - 48, 64, 51, 72, 196, 249, - 192, 213, 70, 47, 196, 138, - 134, 101, 1, 0, 0, 0, - 44, 8, 0, 0, 4, 0, + 68, 88, 66, 67, 106, 73, + 236, 75, 243, 219, 238, 14, + 117, 141, 149, 254, 34, 55, + 148, 241, 1, 0, 0, 0, + 4, 14, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 212, 2, 0, 0, 200, 6, - 0, 0, 136, 7, 0, 0, - 65, 111, 110, 57, 156, 2, - 0, 0, 156, 2, 0, 0, - 0, 2, 254, 255, 104, 2, + 172, 8, 0, 0, 160, 12, + 0, 0, 96, 13, 0, 0, + 65, 111, 110, 57, 116, 8, + 0, 0, 116, 8, 0, 0, + 0, 2, 254, 255, 64, 8, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -148,335 +168,584 @@ const BYTE SkinnedEffect_VSSkinnedPixelLightingOneBone[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 243, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 1, 128, - 3, 0, 0, 144, 243, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 1, 176, 0, 0, - 0, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 4, 0, - 0, 144, 26, 32, 228, 160, - 0, 0, 0, 176, 9, 0, - 0, 3, 1, 0, 1, 128, - 0, 0, 228, 144, 0, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 144, 0, 0, 228, 128, - 5, 0, 0, 4, 2, 0, - 15, 128, 4, 0, 0, 144, - 27, 32, 228, 160, 0, 0, - 0, 176, 5, 0, 0, 4, - 3, 0, 15, 128, 4, 0, - 0, 144, 28, 32, 228, 160, - 0, 0, 0, 176, 9, 0, - 0, 3, 1, 0, 2, 128, - 0, 0, 228, 144, 2, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 2, 0, 228, 128, + 0, 2, 254, 255, 254, 255, + 117, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 168, 5, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 39, 0, 0, 0, + 20, 1, 0, 0, 5, 0, + 0, 0, 68, 5, 0, 0, + 76, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 220, 5, + 0, 0, 0, 0, 255, 255, + 244, 5, 0, 0, 0, 0, + 255, 255, 0, 6, 0, 0, + 0, 0, 255, 255, 12, 6, + 0, 0, 0, 0, 255, 255, + 24, 6, 0, 0, 0, 0, + 255, 255, 36, 6, 0, 0, + 52, 0, 0, 0, 48, 6, + 0, 0, 52, 0, 0, 0, + 64, 6, 0, 0, 52, 0, + 0, 0, 76, 6, 0, 0, + 55, 0, 0, 0, 96, 6, + 0, 0, 56, 0, 0, 0, + 112, 6, 0, 0, 52, 0, + 0, 0, 128, 6, 0, 0, + 52, 0, 0, 0, 148, 6, + 0, 0, 55, 0, 0, 0, + 168, 6, 0, 0, 56, 0, + 0, 0, 184, 6, 0, 0, + 55, 0, 0, 0, 200, 6, + 0, 0, 56, 0, 0, 0, + 216, 6, 0, 0, 85, 0, + 1, 0, 232, 6, 0, 0, + 85, 0, 1, 0, 244, 6, + 0, 0, 86, 0, 1, 0, + 4, 7, 0, 0, 86, 0, + 1, 0, 20, 7, 0, 0, + 86, 0, 1, 0, 36, 7, + 0, 0, 87, 0, 1, 0, + 52, 7, 0, 0, 87, 0, + 1, 0, 68, 7, 0, 0, + 87, 0, 1, 0, 84, 7, + 0, 0, 87, 0, 1, 0, + 100, 7, 0, 0, 87, 0, + 1, 0, 116, 7, 0, 0, + 87, 0, 1, 0, 128, 7, + 0, 0, 14, 0, 2, 0, + 144, 7, 0, 0, 14, 0, + 2, 0, 160, 7, 0, 0, + 14, 0, 2, 0, 176, 7, + 0, 0, 85, 0, 1, 0, + 192, 7, 0, 0, 85, 0, + 1, 0, 208, 7, 0, 0, + 85, 0, 1, 0, 224, 7, + 0, 0, 157, 0, 0, 0, + 240, 7, 0, 0, 157, 0, + 0, 0, 4, 8, 0, 0, + 161, 0, 0, 0, 16, 8, + 0, 0, 166, 0, 0, 0, + 28, 8, 0, 0, 166, 0, + 0, 0, 40, 8, 0, 0, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 80, 105, 120, + 101, 108, 76, 105, 103, 104, + 116, 105, 110, 103, 79, 110, + 101, 66, 111, 110, 101, 0, + 84, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 87, 83, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 78, 111, 114, 109, 97, 108, + 87, 83, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 106, 2, 0, 0, 116, 2, + 0, 0, 132, 2, 0, 0, + 144, 2, 0, 0, 160, 2, + 0, 0, 172, 2, 0, 0, + 188, 2, 0, 0, 144, 2, + 0, 0, 196, 2, 0, 0, + 144, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 208, 2, + 0, 0, 18, 0, 0, 0, + 255, 255, 255, 255, 15, 0, + 255, 255, 19, 0, 0, 0, + 2, 0, 255, 255, 255, 255, + 255, 255, 20, 0, 0, 0, + 255, 255, 3, 0, 255, 255, + 255, 255, 21, 0, 0, 0, + 255, 255, 255, 255, 4, 0, + 255, 255, 27, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 30, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 5, 0, 34, 0, 0, 0, + 13, 0, 14, 0, 255, 255, + 255, 255, 35, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 16, 0, 36, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 38, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 11, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 12, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 83, 107, 105, 110, 0, 118, + 105, 110, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 111, 114, 109, 97, 108, + 0, 73, 110, 100, 105, 99, + 101, 115, 0, 171, 171, 171, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 87, 101, + 105, 103, 104, 116, 115, 0, + 201, 3, 0, 0, 144, 2, + 0, 0, 210, 3, 0, 0, + 172, 2, 0, 0, 106, 2, + 0, 0, 116, 2, 0, 0, + 217, 3, 0, 0, 228, 3, + 0, 0, 244, 3, 0, 0, + 144, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 252, 3, + 0, 0, 9, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 10, 0, 0, 0, + 4, 0, 255, 255, 255, 255, + 255, 255, 13, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 14, 0, 0, 0, + 255, 255, 5, 0, 255, 255, + 255, 255, 15, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 16, 0, 0, 0, + 255, 255, 255, 255, 6, 0, + 255, 255, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 5, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 16, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 80, 111, 115, 95, + 119, 115, 0, 78, 111, 114, + 109, 97, 108, 95, 119, 115, + 0, 70, 111, 103, 70, 97, + 99, 116, 111, 114, 0, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 189, 4, + 0, 0, 144, 2, 0, 0, + 196, 4, 0, 0, 172, 2, + 0, 0, 203, 4, 0, 0, + 172, 2, 0, 0, 213, 4, + 0, 0, 224, 4, 0, 0, + 5, 0, 0, 0, 1, 0, + 11, 0, 1, 0, 4, 0, + 240, 4, 0, 0, 31, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 32, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 33, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 76, 2, 0, 0, + 248, 2, 0, 0, 10, 0, + 0, 0, 8, 3, 0, 0, + 0, 0, 0, 0, 128, 3, + 0, 0, 140, 3, 0, 0, + 3, 0, 0, 0, 156, 3, + 0, 0, 192, 3, 0, 0, + 197, 3, 0, 0, 36, 4, + 0, 0, 6, 0, 0, 0, + 52, 4, 0, 0, 76, 2, + 0, 0, 197, 3, 0, 0, + 36, 4, 0, 0, 5, 0, + 0, 0, 124, 4, 0, 0, + 0, 0, 0, 0, 184, 4, + 0, 0, 16, 5, 0, 0, + 3, 0, 0, 0, 32, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 243, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 1, 128, 3, 0, 0, 144, + 243, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 1, 176, + 0, 0, 0, 128, 5, 0, + 0, 4, 0, 0, 15, 128, + 4, 0, 0, 144, 26, 32, + 228, 160, 0, 0, 0, 176, 9, 0, 0, 3, 1, 0, - 4, 128, 0, 0, 228, 144, - 3, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 3, 0, - 228, 128, 1, 0, 0, 2, - 1, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 1, 0, - 228, 128, 24, 0, 228, 160, + 1, 128, 0, 0, 228, 144, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 144, 0, 0, + 228, 128, 5, 0, 0, 4, + 2, 0, 15, 128, 4, 0, + 0, 144, 27, 32, 228, 160, + 0, 0, 0, 176, 5, 0, + 0, 4, 3, 0, 15, 128, + 4, 0, 0, 144, 28, 32, + 228, 160, 0, 0, 0, 176, 9, 0, 0, 3, 1, 0, - 1, 224, 1, 0, 228, 128, - 15, 0, 228, 160, 9, 0, - 0, 3, 1, 0, 2, 224, - 1, 0, 228, 128, 16, 0, + 2, 128, 0, 0, 228, 144, + 2, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 2, 0, + 228, 128, 9, 0, 0, 3, + 1, 0, 4, 128, 0, 0, + 228, 144, 3, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 4, 128, 1, 0, 228, 144, + 3, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 0, 0, 4, 192, + 1, 0, 228, 128, 24, 0, 228, 160, 9, 0, 0, 3, - 1, 0, 4, 224, 1, 0, - 228, 128, 17, 0, 228, 160, + 1, 0, 1, 224, 1, 0, + 228, 128, 15, 0, 228, 160, + 9, 0, 0, 3, 1, 0, + 2, 224, 1, 0, 228, 128, + 16, 0, 228, 160, 9, 0, + 0, 3, 1, 0, 4, 224, + 1, 0, 228, 128, 17, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 1, 128, 0, 0, + 228, 128, 19, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 1, 128, 0, 0, 228, 128, - 19, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 2, 128, - 0, 0, 228, 128, 20, 0, + 2, 128, 0, 0, 228, 128, + 20, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 4, 128, + 0, 0, 228, 128, 21, 0, 228, 160, 8, 0, 0, 3, - 2, 0, 4, 128, 0, 0, - 228, 128, 21, 0, 228, 160, - 8, 0, 0, 3, 0, 0, - 1, 128, 2, 0, 228, 128, - 2, 0, 228, 128, 7, 0, - 0, 2, 0, 0, 1, 128, - 0, 0, 0, 128, 5, 0, - 0, 3, 2, 0, 7, 224, - 0, 0, 0, 128, 2, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 128, 14, 0, 228, 160, - 11, 0, 0, 3, 0, 0, + 0, 0, 1, 128, 2, 0, + 228, 128, 2, 0, 228, 128, + 7, 0, 0, 2, 0, 0, 1, 128, 0, 0, 0, 128, - 243, 0, 85, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 243, 0, - 170, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 128, 22, 0, 228, 160, + 5, 0, 0, 3, 2, 0, + 7, 224, 0, 0, 0, 128, + 2, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 128, 14, 0, + 228, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 243, 0, 85, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 243, 0, 170, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 128, 22, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 2, 128, 1, 0, + 228, 128, 23, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 1, 0, 228, 128, - 23, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 128, 25, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 242, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 3, 224, - 2, 0, 228, 144, 1, 0, - 0, 2, 0, 0, 6, 128, - 243, 0, 228, 160, 4, 0, - 0, 4, 3, 0, 15, 224, - 0, 0, 255, 160, 0, 0, - 149, 128, 0, 0, 106, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 236, 3, 0, 0, - 64, 0, 1, 0, 251, 0, - 0, 0, 89, 8, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 242, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, + 4, 128, 1, 0, 228, 128, + 25, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 242, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 3, 224, 2, 0, 228, 144, + 1, 0, 0, 2, 0, 0, + 6, 128, 243, 0, 228, 160, + 4, 0, 0, 4, 3, 0, + 15, 224, 0, 0, 255, 160, + 0, 0, 149, 128, 0, 0, + 106, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 236, 3, + 0, 0, 64, 0, 1, 0, + 251, 0, 0, 0, 89, 8, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 242, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 114, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 95, 0, 0, 3, + 18, 16, 16, 0, 3, 0, + 0, 0, 95, 0, 0, 3, + 18, 16, 16, 0, 4, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 3, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 4, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 38, 0, + 0, 8, 0, 208, 0, 0, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 16, 16, 0, + 3, 0, 0, 0, 1, 64, + 0, 0, 3, 0, 0, 0, + 56, 0, 0, 10, 242, 0, 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 95, 0, 0, 3, 18, 16, - 16, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 18, 16, - 16, 0, 4, 0, 0, 0, - 101, 0, 0, 3, 50, 32, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 142, 32, 6, + 0, 0, 0, 0, 26, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 70, 14, 16, 0, 1, 0, + 0, 0, 16, 0, 0, 7, + 18, 0, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 56, 0, 0, 10, 242, 0, 16, 0, 3, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 4, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 38, 0, 0, 8, - 0, 208, 0, 0, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 16, 16, 0, 3, 0, - 0, 0, 1, 64, 0, 0, - 3, 0, 0, 0, 56, 0, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 142, 32, 6, + 0, 0, 0, 0, 27, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 56, 0, 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 6, 16, + 0, 0, 0, 0, 6, 16, 16, 0, 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, - 0, 0, 26, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 2, 0, + 34, 0, 16, 0, 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 18, 0, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 7, 34, 0, 16, 0, 1, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 6, 16, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 27, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 4, 0, 0, 0, 70, 142, - 32, 6, 0, 0, 0, 0, - 28, 0, 0, 0, 10, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 66, 0, 16, 0, + 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 17, 0, 0, 7, 34, 0, - 16, 0, 2, 0, 0, 0, - 70, 30, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 34, 0, 16, 0, - 1, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 17, 0, 0, 7, - 66, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 66, 0, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 16, + 70, 14, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 7, + 66, 0, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, + 54, 0, 0, 5, 130, 0, + 16, 0, 2, 0, 0, 0, + 58, 16, 16, 0, 0, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 1, 0, + 18, 32, 16, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 15, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 17, 32, 0, 8, 130, 32, + 0, 0, 16, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 130, + 0, 0, 0, 0, 17, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, + 14, 0, 0, 0, 16, 0, + 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 16, 0, 0, 8, 66, 0, + 0, 0, 19, 0, 0, 0, + 16, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 21, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 20, 0, + 0, 0, 16, 0, 0, 8, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, + 70, 2, 16, 0, 0, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 32, 16, 0, + 2, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 54, 0, 0, 8, 114, 32, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 8, + 114, 32, 16, 0, 3, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 128, 63, 0, 0, - 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 3, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 142, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 3, 0, 0, 0, 58, 128, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, 4, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 4, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 4, 0, + 66, 32, 16, 0, 4, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 184, 0, 0, 0, 5, 0, - 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 140, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 147, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 25, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 184, 0, 0, 0, + 5, 0, 0, 0, 8, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 156, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 15, 1, 0, 0, - 169, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 1, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 66, 76, - 69, 78, 68, 73, 78, 68, - 73, 67, 69, 83, 0, 66, - 76, 69, 78, 68, 87, 69, - 73, 71, 72, 84, 0, 171, - 171, 171, 79, 83, 71, 78, - 156, 0, 0, 0, 5, 0, - 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 12, 0, 0, - 128, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 15, 1, + 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 128, 0, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 15, 1, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 66, 76, 69, 78, 68, 73, + 78, 68, 73, 67, 69, 83, + 0, 66, 76, 69, 78, 68, + 87, 69, 73, 71, 72, 84, + 0, 171, 171, 171, 79, 83, + 71, 78, 156, 0, 0, 0, + 5, 0, 0, 0, 8, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 8, 0, 0, - 137, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 12, + 0, 0, 128, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 128, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 7, 8, + 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 143, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 0, 0, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 67, 79, 76, - 79, 82, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 0, + 0, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 15, 0, + 0, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 67, + 79, 76, 79, 82, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingTwoBones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingTwoBones.inc index 9473c2ae02a8c370b5b29412f9339bb1ccafae4c..326e288302b777a01c281219b562f39dac6219fe 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingTwoBones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedPixelLightingTwoBones.inc @@ -43,47 +43,67 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0.xy, v3, c243.x mova a0.xy, r0.yxzw mul r0, v4.y, c26[a0.x] - mad r0, c26[a0.y], v4.x, r0 - dp4 r1.x, v0, r0 - dp3 r0.x, v1, r0 + mad r0, c26[a0.y], v4.x, r0 // ::skinning<0,3,6,9> + +#line 55 + dp4 r1.x, v0, r0 // Skin::vin<0> + dp3 r0.x, v1, r0 // Skin::vin<4> + +#line 52 mul r2, v4.y, c27[a0.x] mul r3, v4.y, c28[a0.x] - mad r3, c28[a0.y], v4.x, r3 - mad r2, c27[a0.y], v4.x, r2 - dp4 r1.y, v0, r2 - dp3 r0.y, v1, r2 - dp4 r1.z, v0, r3 - dp3 r0.z, v1, r3 + mad r3, c28[a0.y], v4.x, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.y], v4.x, r2 // ::skinning<1,4,7,10> + +#line 55 + dp4 r1.y, v0, r2 // Skin::vin<1> + dp3 r0.y, v1, r2 // Skin::vin<5> + dp4 r1.z, v0, r3 // Skin::vin<2> + dp3 r0.z, v1, r3 // Skin::vin<6> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" mov r1.w, v0.w - dp4 oPos.z, r1, c24 - dp4 oT1.x, r1, c15 - dp4 oT1.y, r1, c16 - dp4 oT1.z, r1, c17 + dp4 oPos.z, r1, c24 // ::VSSkinnedPixelLightingTwoBones<15> + dp4 oT1.x, r1, c15 // ::VSSkinnedPixelLightingTwoBones<2> + dp4 oT1.y, r1, c16 // ::VSSkinnedPixelLightingTwoBones<3> + dp4 oT1.z, r1, c17 // ::VSSkinnedPixelLightingTwoBones<4> dp3 r2.x, r0, c19 dp3 r2.y, r0, c20 dp3 r2.z, r0, c21 dp3 r0.x, r2, r2 rsq r0.x, r0.x - mul oT2.xyz, r0.x, r2 + mul oT2.xyz, r0.x, r2 // ::VSSkinnedPixelLightingTwoBones<6,7,8> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r0.x, r1, c14 max r0.x, r0.x, c243.y - min oT1.w, r0.x, c243.z - dp4 r0.x, r1, c22 - dp4 r0.y, r1, c23 - dp4 r0.z, r1, c25 - mad oPos.xy, r0.z, c242, r0 - mov oPos.w, r0.z - mov oT0.xy, v2 - mov r0.yz, c243 - mad oT3, c0.w, r0.yyyz, r0.zzzy + min oT1.w, r0.x, c243.z // ::VSSkinnedPixelLightingTwoBones<5> + +#line 85 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r0.x, r1, c22 // ::vout<0> + dp4 r0.y, r1, c23 // ::vout<1> + dp4 r0.z, r1, c25 // ::vout<3> + +#line 174 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.z, c242, r0 // ::VSSkinnedPixelLightingTwoBones<13,14> + mov oPos.w, r0.z // ::VSSkinnedPixelLightingTwoBones<16> + +#line 178 + mov oT0.xy, v2 // ::VSSkinnedPixelLightingTwoBones<0,1> + +#line 183 + mov r0.yz, c243 // ::skinning<10> + mad oT3, c0.w, r0.yyyz, r0.zzzy // ::VSSkinnedPixelLightingTwoBones<9,10,11,12> // approximately 36 instruction slots used vs_4_0 @@ -136,17 +156,17 @@ ret const BYTE SkinnedEffect_VSSkinnedPixelLightingTwoBones[] = { - 68, 88, 66, 67, 163, 194, - 247, 169, 98, 146, 170, 161, - 181, 157, 159, 161, 31, 127, - 1, 147, 1, 0, 0, 0, - 16, 9, 0, 0, 4, 0, + 68, 88, 66, 67, 146, 0, + 191, 242, 86, 70, 57, 128, + 104, 67, 87, 60, 45, 136, + 149, 16, 1, 0, 0, 0, + 12, 15, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 28, 3, 0, 0, 172, 7, - 0, 0, 108, 8, 0, 0, - 65, 111, 110, 57, 228, 2, - 0, 0, 228, 2, 0, 0, - 0, 2, 254, 255, 176, 2, + 24, 9, 0, 0, 168, 13, + 0, 0, 104, 14, 0, 0, + 65, 111, 110, 57, 224, 8, + 0, 0, 224, 8, 0, 0, + 0, 2, 254, 255, 172, 8, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -154,373 +174,628 @@ const BYTE SkinnedEffect_VSSkinnedPixelLightingTwoBones[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 243, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 3, 128, - 3, 0, 228, 144, 243, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 3, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 0, 0, 15, 128, 4, 0, - 85, 144, 26, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 0, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 0, 0, 228, 128, 9, 0, - 0, 3, 1, 0, 1, 128, - 0, 0, 228, 144, 0, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 144, 0, 0, 228, 128, - 5, 0, 0, 4, 2, 0, - 15, 128, 4, 0, 85, 144, - 27, 32, 228, 160, 0, 0, - 0, 176, 5, 0, 0, 4, - 3, 0, 15, 128, 4, 0, - 85, 144, 28, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 2, 0, 228, 128, 9, 0, - 0, 3, 1, 0, 2, 128, - 0, 0, 228, 144, 2, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 228, 144, 2, 0, 228, 128, + 0, 2, 254, 255, 254, 255, + 126, 1, 68, 66, 85, 71, + 40, 0, 0, 0, 204, 5, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 42, 0, 0, 0, + 20, 1, 0, 0, 5, 0, + 0, 0, 104, 5, 0, 0, + 100, 2, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 0, 6, + 0, 0, 0, 0, 255, 255, + 24, 6, 0, 0, 0, 0, + 255, 255, 36, 6, 0, 0, + 0, 0, 255, 255, 48, 6, + 0, 0, 0, 0, 255, 255, + 60, 6, 0, 0, 0, 0, + 255, 255, 72, 6, 0, 0, + 52, 0, 0, 0, 84, 6, + 0, 0, 52, 0, 0, 0, + 100, 6, 0, 0, 52, 0, + 0, 0, 112, 6, 0, 0, + 52, 0, 0, 0, 132, 6, + 0, 0, 55, 0, 0, 0, + 156, 6, 0, 0, 56, 0, + 0, 0, 172, 6, 0, 0, + 52, 0, 0, 0, 188, 6, + 0, 0, 52, 0, 0, 0, + 208, 6, 0, 0, 52, 0, + 0, 0, 228, 6, 0, 0, + 52, 0, 0, 0, 252, 6, + 0, 0, 55, 0, 0, 0, + 20, 7, 0, 0, 56, 0, + 0, 0, 36, 7, 0, 0, + 55, 0, 0, 0, 52, 7, + 0, 0, 56, 0, 0, 0, + 68, 7, 0, 0, 85, 0, + 1, 0, 84, 7, 0, 0, + 85, 0, 1, 0, 96, 7, + 0, 0, 86, 0, 1, 0, + 112, 7, 0, 0, 86, 0, + 1, 0, 128, 7, 0, 0, + 86, 0, 1, 0, 144, 7, + 0, 0, 87, 0, 1, 0, + 160, 7, 0, 0, 87, 0, + 1, 0, 176, 7, 0, 0, + 87, 0, 1, 0, 192, 7, + 0, 0, 87, 0, 1, 0, + 208, 7, 0, 0, 87, 0, + 1, 0, 224, 7, 0, 0, + 87, 0, 1, 0, 236, 7, + 0, 0, 14, 0, 2, 0, + 252, 7, 0, 0, 14, 0, + 2, 0, 12, 8, 0, 0, + 14, 0, 2, 0, 28, 8, + 0, 0, 85, 0, 1, 0, + 44, 8, 0, 0, 85, 0, + 1, 0, 60, 8, 0, 0, + 85, 0, 1, 0, 76, 8, + 0, 0, 174, 0, 0, 0, + 92, 8, 0, 0, 174, 0, + 0, 0, 112, 8, 0, 0, + 178, 0, 0, 0, 124, 8, + 0, 0, 183, 0, 0, 0, + 136, 8, 0, 0, 183, 0, + 0, 0, 148, 8, 0, 0, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 80, 105, 120, + 101, 108, 76, 105, 103, 104, + 116, 105, 110, 103, 84, 119, + 111, 66, 111, 110, 101, 115, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 0, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 87, 83, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 78, 111, 114, 109, 97, 108, + 87, 83, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 105, + 102, 102, 117, 115, 101, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 131, 2, 0, 0, 140, 2, + 0, 0, 156, 2, 0, 0, + 168, 2, 0, 0, 184, 2, + 0, 0, 196, 2, 0, 0, + 212, 2, 0, 0, 168, 2, + 0, 0, 220, 2, 0, 0, + 168, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 232, 2, + 0, 0, 21, 0, 0, 0, + 255, 255, 255, 255, 15, 0, + 255, 255, 22, 0, 0, 0, + 2, 0, 255, 255, 255, 255, + 255, 255, 23, 0, 0, 0, + 255, 255, 3, 0, 255, 255, + 255, 255, 24, 0, 0, 0, + 255, 255, 255, 255, 4, 0, + 255, 255, 30, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 33, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 5, 0, 37, 0, 0, 0, + 13, 0, 14, 0, 255, 255, + 255, 255, 38, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 16, 0, 39, 0, 0, 0, + 0, 0, 1, 0, 255, 255, + 255, 255, 41, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 115, 107, 105, 110, + 110, 105, 110, 103, 0, 171, + 171, 171, 3, 0, 3, 0, + 4, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 9, 0, + 14, 0, 0, 0, 2, 0, + 5, 0, 8, 0, 11, 0, + 15, 0, 0, 0, 1, 0, + 4, 0, 7, 0, 10, 0, + 40, 0, 0, 0, 255, 255, + 10, 0, 255, 255, 255, 255, + 83, 107, 105, 110, 0, 118, + 105, 110, 0, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 78, 111, 114, 109, 97, 108, + 0, 73, 110, 100, 105, 99, + 101, 115, 0, 171, 171, 171, + 1, 0, 2, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 87, 101, + 105, 103, 104, 116, 115, 0, + 237, 3, 0, 0, 168, 2, + 0, 0, 246, 3, 0, 0, + 196, 2, 0, 0, 131, 2, + 0, 0, 140, 2, 0, 0, + 253, 3, 0, 0, 8, 4, + 0, 0, 24, 4, 0, 0, + 168, 2, 0, 0, 5, 0, + 0, 0, 1, 0, 17, 0, + 1, 0, 5, 0, 32, 4, + 0, 0, 10, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 11, 0, 0, 0, + 4, 0, 255, 255, 255, 255, + 255, 255, 16, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 17, 0, 0, 0, + 255, 255, 5, 0, 255, 255, + 255, 255, 18, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 19, 0, 0, 0, + 255, 255, 255, 255, 6, 0, + 255, 255, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 3, 0, 2, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 3, 0, 0, 0, + 7, 0, 8, 0, 255, 255, + 255, 255, 4, 0, 0, 0, + 9, 0, 10, 0, 11, 0, + 12, 0, 5, 0, 0, 0, + 13, 0, 14, 0, 15, 0, + 16, 0, 118, 111, 117, 116, + 0, 80, 111, 115, 95, 112, + 115, 0, 80, 111, 115, 95, + 119, 115, 0, 78, 111, 114, + 109, 97, 108, 95, 119, 115, + 0, 70, 111, 103, 70, 97, + 99, 116, 111, 114, 0, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 225, 4, + 0, 0, 168, 2, 0, 0, + 232, 4, 0, 0, 196, 2, + 0, 0, 239, 4, 0, 0, + 196, 2, 0, 0, 249, 4, + 0, 0, 4, 5, 0, 0, + 5, 0, 0, 0, 1, 0, + 11, 0, 1, 0, 4, 0, + 20, 5, 0, 0, 34, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 35, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 36, 0, + 0, 0, 255, 255, 255, 255, + 3, 0, 255, 255, 0, 0, + 0, 0, 100, 2, 0, 0, + 16, 3, 0, 0, 10, 0, + 0, 0, 32, 3, 0, 0, + 0, 0, 0, 0, 152, 3, + 0, 0, 164, 3, 0, 0, + 4, 0, 0, 0, 180, 3, + 0, 0, 228, 3, 0, 0, + 233, 3, 0, 0, 72, 4, + 0, 0, 6, 0, 0, 0, + 88, 4, 0, 0, 100, 2, + 0, 0, 233, 3, 0, 0, + 72, 4, 0, 0, 5, 0, + 0, 0, 160, 4, 0, 0, + 0, 0, 0, 0, 220, 4, + 0, 0, 52, 5, 0, 0, + 3, 0, 0, 0, 68, 5, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 49, 48, 46, 49, 0, + 81, 0, 0, 5, 243, 0, + 15, 160, 0, 0, 64, 64, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 2, 128, 2, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 3, 128, 3, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 4, 128, 4, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 3, 128, 3, 0, 228, 144, + 243, 0, 0, 160, 46, 0, + 0, 2, 0, 0, 3, 176, + 0, 0, 225, 128, 5, 0, + 0, 4, 0, 0, 15, 128, + 4, 0, 85, 144, 26, 32, + 228, 160, 0, 0, 0, 176, + 4, 0, 0, 5, 0, 0, + 15, 128, 26, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 0, 0, 228, 128, 9, 0, 0, 3, 1, 0, - 4, 128, 0, 0, 228, 144, - 3, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 144, 3, 0, - 228, 128, 1, 0, 0, 2, - 1, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 0, 0, 4, 192, 1, 0, - 228, 128, 24, 0, 228, 160, + 1, 128, 0, 0, 228, 144, + 0, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 144, 0, 0, + 228, 128, 5, 0, 0, 4, + 2, 0, 15, 128, 4, 0, + 85, 144, 27, 32, 228, 160, + 0, 0, 0, 176, 5, 0, + 0, 4, 3, 0, 15, 128, + 4, 0, 85, 144, 28, 32, + 228, 160, 0, 0, 0, 176, + 4, 0, 0, 5, 3, 0, + 15, 128, 28, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 3, 0, 228, 128, + 4, 0, 0, 5, 2, 0, + 15, 128, 27, 32, 228, 160, + 0, 0, 85, 176, 4, 0, + 0, 144, 2, 0, 228, 128, 9, 0, 0, 3, 1, 0, - 1, 224, 1, 0, 228, 128, - 15, 0, 228, 160, 9, 0, - 0, 3, 1, 0, 2, 224, - 1, 0, 228, 128, 16, 0, + 2, 128, 0, 0, 228, 144, + 2, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 2, 128, + 1, 0, 228, 144, 2, 0, + 228, 128, 9, 0, 0, 3, + 1, 0, 4, 128, 0, 0, + 228, 144, 3, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 4, 128, 1, 0, 228, 144, + 3, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 0, 0, 255, 144, 9, 0, + 0, 3, 0, 0, 4, 192, + 1, 0, 228, 128, 24, 0, 228, 160, 9, 0, 0, 3, - 1, 0, 4, 224, 1, 0, - 228, 128, 17, 0, 228, 160, + 1, 0, 1, 224, 1, 0, + 228, 128, 15, 0, 228, 160, + 9, 0, 0, 3, 1, 0, + 2, 224, 1, 0, 228, 128, + 16, 0, 228, 160, 9, 0, + 0, 3, 1, 0, 4, 224, + 1, 0, 228, 128, 17, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 1, 128, 0, 0, + 228, 128, 19, 0, 228, 160, 8, 0, 0, 3, 2, 0, - 1, 128, 0, 0, 228, 128, - 19, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 2, 128, - 0, 0, 228, 128, 20, 0, + 2, 128, 0, 0, 228, 128, + 20, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 4, 128, + 0, 0, 228, 128, 21, 0, 228, 160, 8, 0, 0, 3, - 2, 0, 4, 128, 0, 0, - 228, 128, 21, 0, 228, 160, - 8, 0, 0, 3, 0, 0, - 1, 128, 2, 0, 228, 128, - 2, 0, 228, 128, 7, 0, - 0, 2, 0, 0, 1, 128, - 0, 0, 0, 128, 5, 0, - 0, 3, 2, 0, 7, 224, - 0, 0, 0, 128, 2, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 128, 14, 0, 228, 160, - 11, 0, 0, 3, 0, 0, + 0, 0, 1, 128, 2, 0, + 228, 128, 2, 0, 228, 128, + 7, 0, 0, 2, 0, 0, 1, 128, 0, 0, 0, 128, - 243, 0, 85, 160, 10, 0, - 0, 3, 1, 0, 8, 224, - 0, 0, 0, 128, 243, 0, - 170, 160, 9, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 128, 22, 0, 228, 160, + 5, 0, 0, 3, 2, 0, + 7, 224, 0, 0, 0, 128, + 2, 0, 228, 128, 9, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 128, 14, 0, + 228, 160, 11, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 0, 128, 243, 0, 85, 160, + 10, 0, 0, 3, 1, 0, + 8, 224, 0, 0, 0, 128, + 243, 0, 170, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 1, 0, 228, 128, 22, 0, + 228, 160, 9, 0, 0, 3, + 0, 0, 2, 128, 1, 0, + 228, 128, 23, 0, 228, 160, 9, 0, 0, 3, 0, 0, - 2, 128, 1, 0, 228, 128, - 23, 0, 228, 160, 9, 0, - 0, 3, 0, 0, 4, 128, - 1, 0, 228, 128, 25, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 170, 128, 242, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 8, 192, - 0, 0, 170, 128, 1, 0, - 0, 2, 0, 0, 3, 224, - 2, 0, 228, 144, 1, 0, - 0, 2, 0, 0, 6, 128, - 243, 0, 228, 160, 4, 0, - 0, 4, 3, 0, 15, 224, - 0, 0, 255, 160, 0, 0, - 149, 128, 0, 0, 106, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 136, 4, 0, 0, - 64, 0, 1, 0, 34, 1, - 0, 0, 89, 8, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 242, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 4, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 3, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 4, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 38, 0, 0, 11, - 0, 208, 0, 0, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 3, 0, - 0, 0, 2, 64, 0, 0, - 3, 0, 0, 0, 3, 0, + 4, 128, 1, 0, 228, 128, + 25, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 170, 128, 242, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 8, 192, 0, 0, 170, 128, + 1, 0, 0, 2, 0, 0, + 3, 224, 2, 0, 228, 144, + 1, 0, 0, 2, 0, 0, + 6, 128, 243, 0, 228, 160, + 4, 0, 0, 4, 3, 0, + 15, 224, 0, 0, 255, 160, + 0, 0, 149, 128, 0, 0, + 106, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 136, 4, + 0, 0, 64, 0, 1, 0, + 34, 1, 0, 0, 89, 8, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 242, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 114, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 2, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 3, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 4, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 114, 32, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 3, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 4, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 38, 0, + 0, 11, 0, 208, 0, 0, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 3, 0, 0, 0, 2, 64, + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 21, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 26, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 1, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 21, 16, 0, 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, 26, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 4, 0, 0, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 26, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 17, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 1, 0, - 0, 0, 17, 0, 0, 7, - 18, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 18, 0, + 0, 0, 16, 0, 0, 7, + 18, 0, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 86, 21, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 27, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 3, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 86, 21, 16, 0, 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, 27, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 4, 0, 0, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 27, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 34, 0, 16, 0, + 2, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 0, 0, 70, 14, 16, 0, 3, 0, - 0, 0, 17, 0, 0, 7, - 34, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 0, 16, 0, 0, 7, + 34, 0, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 34, 0, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 56, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 86, 21, - 16, 0, 4, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 28, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 12, - 242, 0, 16, 0, 0, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 86, 21, 16, 0, 4, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, 28, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 4, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 17, 0, 0, 7, - 66, 0, 16, 0, 2, 0, - 0, 0, 70, 30, 16, 0, - 0, 0, 0, 0, 70, 14, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 28, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 66, 0, - 16, 0, 1, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 16, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 17, 0, + 0, 7, 66, 0, 16, 0, + 2, 0, 0, 0, 70, 30, 16, 0, 0, 0, 0, 0, - 17, 0, 0, 8, 18, 32, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 16, 0, 0, 7, + 66, 0, 16, 0, 1, 0, + 0, 0, 70, 18, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 130, 0, + 16, 0, 2, 0, 0, 0, + 58, 16, 16, 0, 0, 0, 0, 0, 17, 0, 0, 8, - 34, 32, 16, 0, 1, 0, + 18, 32, 16, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 17, 0, - 0, 8, 66, 32, 16, 0, + 15, 0, 0, 0, 17, 0, + 0, 8, 34, 32, 16, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 17, 32, 0, 8, 130, 32, + 0, 0, 16, 0, 0, 0, + 17, 0, 0, 8, 66, 32, 16, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 130, + 0, 0, 0, 0, 17, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, + 14, 0, 0, 0, 16, 0, + 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 16, 0, 0, 8, 66, 0, + 0, 0, 19, 0, 0, 0, + 16, 0, 0, 8, 34, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 21, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 20, 0, + 0, 0, 16, 0, 0, 8, + 66, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, + 70, 2, 16, 0, 0, 0, + 0, 0, 68, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 32, 16, 0, + 2, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 54, 0, 0, 8, 114, 32, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 8, + 114, 32, 16, 0, 3, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 128, 63, 0, 0, - 0, 0, 54, 0, 0, 6, - 130, 32, 16, 0, 3, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 70, 142, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 3, 0, 0, 0, 58, 128, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 0, 0, 0, 0, 17, 0, + 0, 8, 18, 32, 16, 0, 4, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 22, 0, 0, 0, + 17, 0, 0, 8, 34, 32, 16, 0, 4, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 4, 0, + 66, 32, 16, 0, 4, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 184, 0, 0, 0, 5, 0, - 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 140, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 147, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 17, 0, + 0, 8, 130, 32, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 25, 0, 0, 0, + 62, 0, 0, 1, 73, 83, + 71, 78, 184, 0, 0, 0, + 5, 0, 0, 0, 8, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 156, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 15, + 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 15, 3, 0, 0, - 169, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 7, 7, + 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 3, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 66, 76, - 69, 78, 68, 73, 78, 68, - 73, 67, 69, 83, 0, 66, - 76, 69, 78, 68, 87, 69, - 73, 71, 72, 84, 0, 171, - 171, 171, 79, 83, 71, 78, - 156, 0, 0, 0, 5, 0, - 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 3, 3, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 12, 0, 0, - 128, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 15, 3, + 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 128, 0, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 15, 3, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 79, 82, 77, + 65, 76, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 66, 76, 69, 78, 68, 73, + 78, 68, 73, 67, 69, 83, + 0, 66, 76, 69, 78, 68, + 87, 69, 73, 71, 72, 84, + 0, 171, 171, 171, 79, 83, + 71, 78, 156, 0, 0, 0, + 5, 0, 0, 0, 8, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 8, 0, 0, - 137, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 12, + 0, 0, 128, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 128, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 7, 8, + 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 143, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 0, 0, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 67, 79, 76, - 79, 82, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 0, 0, 3, 0, 0, 0, + 3, 0, 0, 0, 15, 0, + 0, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 15, 0, + 0, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 67, + 79, 76, 79, 82, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingFourBones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingFourBones.inc index e2f3bc77e8d21db70a363c1fbbb1a7b605293698..047d5980217d4988f0e059abe1370399b5d4944a 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingFourBones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingFourBones.inc @@ -42,84 +42,134 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0, v3, c243.x mova a0, r0.yxzw mul r1, v4.y, c26[a0.x] - mad r1, c26[a0.y], v4.x, r1 - mad r0, c26[a0.z], v4.z, r1 - mad r0, c26[a0.w], v4.w, r0 - dp3 r1.x, v1, r0 - dp4 r0.x, v0, r0 + mad r1, c26[a0.y], v4.x, r1 // ::skinning<0,3,6,9> + mad r0, c26[a0.z], v4.z, r1 // ::skinning<0,3,6,9> + mad r0, c26[a0.w], v4.w, r0 // ::skinning<0,3,6,9> + +#line 56 + dp3 r1.x, v1, r0 // Skin::vin<4> + dp4 r0.x, v0, r0 // Skin::vin<0> + +#line 52 mul r2, v4.y, c27[a0.x] mul r3, v4.y, c28[a0.x] - mad r3, c28[a0.y], v4.x, r3 - mad r2, c27[a0.y], v4.x, r2 - mad r2, c27[a0.z], v4.z, r2 - mad r3, c28[a0.z], v4.z, r3 - mad r3, c28[a0.w], v4.w, r3 - mad r2, c27[a0.w], v4.w, r2 - dp3 r1.y, v1, r2 - dp4 r0.y, v0, r2 - dp3 r1.z, v1, r3 - dp4 r0.z, v0, r3 + mad r3, c28[a0.y], v4.x, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.y], v4.x, r2 // ::skinning<1,4,7,10> + mad r2, c27[a0.z], v4.z, r2 // ::skinning<1,4,7,10> + mad r3, c28[a0.z], v4.z, r3 // ::skinning<2,5,8,11> + mad r3, c28[a0.w], v4.w, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.w], v4.w, r2 // ::skinning<1,4,7,10> + +#line 56 + dp3 r1.y, v1, r2 // Skin::vin<5> + dp4 r0.y, v0, r2 // Skin::vin<1> + dp3 r1.z, v1, r3 // Skin::vin<6> + dp4 r0.z, v0, r3 // Skin::vin<2> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r2.x, r1, c19 dp3 r2.y, r1, c20 dp3 r2.z, r1, c21 - nrm r1.xyz, r2 - dp3 r2.x, -c3, r1 - dp3 r2.y, -c4, r1 - dp3 r2.z, -c5, r1 - sge r3.xyz, r2, c243.y - mul r2.xyz, r2, r3 + nrm r1.xyz, r2 // ::worldNormal<0,1,2> + +#line 36 + dp3 r2.x, -c3, r1 // ::dotL<0> + dp3 r2.y, -c4, r1 // ::dotL<1> + dp3 r2.z, -c5, r1 // ::dotL<2> + +#line 39 + sge r3.xyz, r2, c243.y // ::zeroL<0,1,2> + mul r2.xyz, r2, r3 // ::diffuse<0,1,2> + +#line 46 mul r4.xyz, r2.y, c7 mad r2.xyw, r2.x, c6.xyzz, r4.xyzz mad r2.xyz, r2.z, c8, r2.xyww - mov r4.xyz, c0 - mad oT0.xyz, r2, r4, c1 + mov r4.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r2, r4, c1 // ::VSSkinnedVertexLightingFourBones<0,1,2> + +#line 57 mov r0.w, v0.w - dp4 r2.x, r0, c15 - dp4 r2.y, r0, c16 - dp4 r2.z, r0, c17 + dp4 r2.x, r0, c15 // ::pos_ws<0> + dp4 r2.y, r0, c16 // ::pos_ws<1> + dp4 r2.z, r0, c17 // ::pos_ws<2> add r2.xyz, -r2, c12 - nrm r4.xyz, r2 + nrm r4.xyz, r2 // ::eyeVector<0,1,2> + +#line 33 add r2.xyz, r4, -c3 - nrm r5.xyz, r2 - dp3 r2.x, r5, r1 + nrm r5.xyz, r2 // ::halfVectors<0,1,2> + +#line 37 + dp3 r2.x, r5, r1 // ::dotH<0> + +#line 33 add r5.xyz, r4, -c4 add r4.xyz, r4, -c5 - nrm r6.xyz, r4 - dp3 r2.z, r6, r1 - nrm r4.xyz, r5 - dp3 r2.y, r4, r1 + nrm r6.xyz, r4 // ::halfVectors<6,7,8> + +#line 37 + dp3 r2.z, r6, r1 // ::dotH<2> + +#line 33 + nrm r4.xyz, r5 // ::halfVectors<3,4,5> + +#line 37 + dp3 r2.y, r4, r1 // ::dotH<1> + +#line 42 max r1.xyz, r2, c243.y mul r1.xyz, r3, r1 log r2.x, r1.x log r2.y, r1.y log r2.z, r1.z mul r1.xyz, r2, c2.w - exp r1.y, r1.y + exp r1.y, r1.y // ::specular<1> + +#line 47 mul r2.xyz, r1.y, c10 - exp r1.x, r1.x - exp r1.y, r1.z + +#line 42 + exp r1.x, r1.x // ::specular<0> + exp r1.y, r1.z // ::specular<2> + +#line 47 mad r1.xzw, r1.x, c9.xyyz, r2.xyyz mad r1.xyz, r1.y, c11, r1.xzww - mul oT1.xyz, r1, c2 - dp4 oPos.z, r0, c24 + mul oT1.xyz, r1, c2 // ::VSSkinnedVertexLightingFourBones<4,5,6> + +#line 63 + dp4 oPos.z, r0, c24 // ::VSSkinnedVertexLightingFourBones<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r1.x, r0, c14 max r1.x, r1.x, c243.y - min oT1.w, r1.x, c243.z - dp4 r1.x, r0, c22 - dp4 r1.y, r0, c23 - dp4 r0.x, r0, c25 - mad oPos.xy, r0.x, c242, r1 - mov oPos.w, r0.x - mov oT0.w, c0.w - mov oT2.xy, v2 + min oT1.w, r1.x, c243.z // ::VSSkinnedVertexLightingFourBones<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r1.x, r0, c22 // ::vout<0> + dp4 r1.y, r0, c23 // ::vout<1> + dp4 r0.x, r0, c25 // ::vout<3> + +#line 93 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.x, c242, r1 // ::VSSkinnedVertexLightingFourBones<10,11> + mov oPos.w, r0.x // ::VSSkinnedVertexLightingFourBones<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c0.w // ::VSSkinnedVertexLightingFourBones<3> + +#line 97 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mov oT2.xy, v2 // ::VSSkinnedVertexLightingFourBones<8,9> // approximately 83 instruction slots used vs_4_0 @@ -213,17 +263,17 @@ ret const BYTE SkinnedEffect_VSSkinnedVertexLightingFourBones[] = { - 68, 88, 66, 67, 53, 121, - 126, 89, 215, 5, 76, 254, - 128, 205, 221, 247, 111, 179, - 122, 93, 1, 0, 0, 0, - 240, 16, 0, 0, 4, 0, + 68, 88, 66, 67, 51, 115, + 67, 123, 215, 206, 157, 189, + 141, 71, 169, 45, 88, 67, + 184, 117, 1, 0, 0, 0, + 96, 26, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 128, 5, 0, 0, 164, 15, - 0, 0, 100, 16, 0, 0, - 65, 111, 110, 57, 72, 5, - 0, 0, 72, 5, 0, 0, - 0, 2, 254, 255, 20, 5, + 240, 14, 0, 0, 20, 25, + 0, 0, 212, 25, 0, 0, + 65, 111, 110, 57, 184, 14, + 0, 0, 184, 14, 0, 0, + 0, 2, 254, 255, 132, 14, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -231,709 +281,1112 @@ const BYTE SkinnedEffect_VSSkinnedVertexLightingFourBones[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, - 0, 5, 243, 0, 15, 160, - 0, 0, 64, 64, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 3, 128, - 3, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 4, 128, - 4, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 3, 0, 228, 144, 243, 0, - 0, 160, 46, 0, 0, 2, - 0, 0, 15, 176, 0, 0, - 225, 128, 5, 0, 0, 4, - 1, 0, 15, 128, 4, 0, - 85, 144, 26, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 1, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, - 26, 32, 228, 160, 0, 0, - 170, 176, 4, 0, 170, 144, - 1, 0, 228, 128, 4, 0, - 0, 5, 0, 0, 15, 128, + 0, 2, 254, 255, 254, 255, + 91, 2, 68, 66, 85, 71, + 40, 0, 0, 0, 64, 9, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 79, 0, 0, 0, + 20, 1, 0, 0, 15, 0, + 0, 0, 20, 8, 0, 0, + 192, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 116, 9, + 0, 0, 0, 0, 255, 255, + 140, 9, 0, 0, 0, 0, + 255, 255, 152, 9, 0, 0, + 0, 0, 255, 255, 164, 9, + 0, 0, 0, 0, 255, 255, + 176, 9, 0, 0, 0, 0, + 255, 255, 188, 9, 0, 0, + 52, 0, 0, 0, 200, 9, + 0, 0, 52, 0, 0, 0, + 216, 9, 0, 0, 52, 0, + 0, 0, 228, 9, 0, 0, + 52, 0, 0, 0, 248, 9, + 0, 0, 52, 0, 0, 0, + 16, 10, 0, 0, 52, 0, + 0, 0, 40, 10, 0, 0, + 56, 0, 0, 0, 64, 10, + 0, 0, 55, 0, 0, 0, + 80, 10, 0, 0, 52, 0, + 0, 0, 96, 10, 0, 0, + 52, 0, 0, 0, 116, 10, + 0, 0, 52, 0, 0, 0, + 136, 10, 0, 0, 52, 0, + 0, 0, 160, 10, 0, 0, + 52, 0, 0, 0, 184, 10, + 0, 0, 52, 0, 0, 0, + 208, 10, 0, 0, 52, 0, + 0, 0, 232, 10, 0, 0, + 52, 0, 0, 0, 0, 11, + 0, 0, 56, 0, 0, 0, + 24, 11, 0, 0, 55, 0, + 0, 0, 40, 11, 0, 0, + 56, 0, 0, 0, 56, 11, + 0, 0, 55, 0, 0, 0, + 72, 11, 0, 0, 59, 0, + 1, 0, 88, 11, 0, 0, + 59, 0, 1, 0, 104, 11, + 0, 0, 59, 0, 1, 0, + 120, 11, 0, 0, 59, 0, + 1, 0, 136, 11, 0, 0, + 36, 0, 1, 0, 148, 11, + 0, 0, 36, 0, 1, 0, + 164, 11, 0, 0, 36, 0, + 1, 0, 180, 11, 0, 0, + 39, 0, 1, 0, 196, 11, + 0, 0, 41, 0, 1, 0, + 212, 11, 0, 0, 46, 0, + 1, 0, 228, 11, 0, 0, + 46, 0, 1, 0, 244, 11, + 0, 0, 46, 0, 1, 0, + 8, 12, 0, 0, 46, 0, + 1, 0, 28, 12, 0, 0, + 46, 0, 1, 0, 40, 12, + 0, 0, 57, 0, 1, 0, + 60, 12, 0, 0, 57, 0, + 1, 0, 72, 12, 0, 0, + 57, 0, 1, 0, 88, 12, + 0, 0, 57, 0, 1, 0, + 104, 12, 0, 0, 58, 0, + 1, 0, 120, 12, 0, 0, + 58, 0, 1, 0, 136, 12, + 0, 0, 33, 0, 1, 0, + 148, 12, 0, 0, 33, 0, + 1, 0, 164, 12, 0, 0, + 37, 0, 1, 0, 176, 12, + 0, 0, 33, 0, 1, 0, + 192, 12, 0, 0, 33, 0, + 1, 0, 208, 12, 0, 0, + 33, 0, 1, 0, 224, 12, + 0, 0, 37, 0, 1, 0, + 236, 12, 0, 0, 33, 0, + 1, 0, 252, 12, 0, 0, + 37, 0, 1, 0, 8, 13, + 0, 0, 42, 0, 1, 0, + 24, 13, 0, 0, 42, 0, + 1, 0, 40, 13, 0, 0, + 42, 0, 1, 0, 56, 13, + 0, 0, 42, 0, 1, 0, + 68, 13, 0, 0, 42, 0, + 1, 0, 80, 13, 0, 0, + 42, 0, 1, 0, 92, 13, + 0, 0, 42, 0, 1, 0, + 108, 13, 0, 0, 47, 0, + 1, 0, 120, 13, 0, 0, + 42, 0, 1, 0, 136, 13, + 0, 0, 42, 0, 1, 0, + 148, 13, 0, 0, 47, 0, + 1, 0, 160, 13, 0, 0, + 47, 0, 1, 0, 180, 13, + 0, 0, 47, 0, 1, 0, + 200, 13, 0, 0, 63, 0, + 1, 0, 216, 13, 0, 0, + 14, 0, 2, 0, 232, 13, + 0, 0, 14, 0, 2, 0, + 248, 13, 0, 0, 14, 0, + 2, 0, 8, 14, 0, 0, + 63, 0, 1, 0, 24, 14, + 0, 0, 63, 0, 1, 0, + 40, 14, 0, 0, 63, 0, + 1, 0, 56, 14, 0, 0, + 93, 0, 0, 0, 72, 14, + 0, 0, 93, 0, 0, 0, + 92, 14, 0, 0, 46, 0, + 1, 0, 104, 14, 0, 0, + 97, 0, 0, 0, 116, 14, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 38, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 70, + 111, 117, 114, 66, 111, 110, + 101, 115, 0, 68, 105, 102, + 102, 117, 115, 101, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 83, 112, 101, 99, 117, 108, + 97, 114, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 111, 115, 105, 116, 105, + 111, 110, 80, 83, 0, 171, + 225, 3, 0, 0, 236, 3, + 0, 0, 252, 3, 0, 0, + 236, 3, 0, 0, 5, 4, + 0, 0, 16, 4, 0, 0, + 32, 4, 0, 0, 236, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 14, 0, 1, 0, + 4, 0, 44, 4, 0, 0, + 39, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 67, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 68, 0, 0, 0, 255, 255, + 255, 255, 12, 0, 255, 255, + 71, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 7, 0, + 75, 0, 0, 0, 10, 0, + 11, 0, 255, 255, 255, 255, + 76, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 13, 0, + 77, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 3, 0, + 78, 0, 0, 0, 8, 0, + 9, 0, 255, 255, 255, 255, + 100, 105, 102, 102, 117, 115, + 101, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 100, 111, 116, 72, 0, 171, + 171, 171, 48, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 52, 0, 0, 0, + 255, 255, 255, 255, 2, 0, + 255, 255, 54, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 100, 111, 116, 76, + 0, 171, 171, 171, 30, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 31, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 32, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 101, 121, + 101, 86, 101, 99, 116, 111, + 114, 0, 171, 171, 45, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 104, 97, + 108, 102, 86, 101, 99, 116, + 111, 114, 115, 0, 3, 0, + 3, 0, 3, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 51, 0, 0, 0, + 6, 0, 7, 0, 8, 0, + 255, 255, 53, 0, 0, 0, + 3, 0, 4, 0, 5, 0, + 255, 255, 112, 111, 115, 95, + 119, 115, 0, 171, 41, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 42, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 43, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 115, 107, + 105, 110, 110, 105, 110, 103, + 0, 171, 171, 171, 3, 0, + 3, 0, 4, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 0, 0, 3, 0, 6, 0, + 9, 0, 10, 0, 0, 0, + 0, 0, 3, 0, 6, 0, + 9, 0, 11, 0, 0, 0, + 0, 0, 3, 0, 6, 0, + 9, 0, 16, 0, 0, 0, + 2, 0, 5, 0, 8, 0, + 11, 0, 17, 0, 0, 0, + 1, 0, 4, 0, 7, 0, + 10, 0, 18, 0, 0, 0, + 1, 0, 4, 0, 7, 0, + 10, 0, 19, 0, 0, 0, + 2, 0, 5, 0, 8, 0, + 11, 0, 20, 0, 0, 0, + 2, 0, 5, 0, 8, 0, + 11, 0, 21, 0, 0, 0, + 1, 0, 4, 0, 7, 0, + 10, 0, 115, 112, 101, 99, + 117, 108, 97, 114, 0, 171, + 171, 171, 61, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 63, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 64, 0, 0, 0, + 255, 255, 2, 0, 255, 255, + 255, 255, 83, 107, 105, 110, + 0, 118, 105, 110, 0, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 78, 111, 114, 109, + 97, 108, 0, 73, 110, 100, + 105, 99, 101, 115, 0, 171, + 171, 171, 1, 0, 2, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 87, 101, 105, 103, 104, 116, + 115, 0, 125, 6, 0, 0, + 236, 3, 0, 0, 134, 6, + 0, 0, 196, 4, 0, 0, + 5, 4, 0, 0, 16, 4, + 0, 0, 141, 6, 0, 0, + 152, 6, 0, 0, 168, 6, + 0, 0, 236, 3, 0, 0, + 5, 0, 0, 0, 1, 0, + 17, 0, 1, 0, 5, 0, + 176, 6, 0, 0, 12, 0, + 0, 0, 4, 0, 255, 255, + 255, 255, 255, 255, 13, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 22, 0, + 0, 0, 255, 255, 5, 0, + 255, 255, 255, 255, 23, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 24, 0, + 0, 0, 255, 255, 255, 255, + 6, 0, 255, 255, 25, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 1, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 3, 0, 2, 0, + 0, 0, 4, 0, 5, 0, + 6, 0, 255, 255, 3, 0, + 0, 0, 7, 0, 8, 0, + 255, 255, 255, 255, 4, 0, + 0, 0, 9, 0, 10, 0, + 11, 0, 12, 0, 5, 0, + 0, 0, 13, 0, 14, 0, + 15, 0, 16, 0, 118, 111, + 117, 116, 0, 80, 111, 115, + 95, 112, 115, 0, 70, 111, + 103, 70, 97, 99, 116, 111, + 114, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 113, 7, 0, 0, + 236, 3, 0, 0, 225, 3, + 0, 0, 236, 3, 0, 0, + 252, 3, 0, 0, 196, 4, + 0, 0, 120, 7, 0, 0, + 132, 7, 0, 0, 5, 0, + 0, 0, 1, 0, 12, 0, + 1, 0, 4, 0, 148, 7, + 0, 0, 72, 0, 0, 0, + 0, 0, 255, 255, 255, 255, + 255, 255, 73, 0, 0, 0, + 255, 255, 1, 0, 255, 255, + 255, 255, 74, 0, 0, 0, + 3, 0, 255, 255, 255, 255, + 255, 255, 119, 111, 114, 108, + 100, 78, 111, 114, 109, 97, + 108, 0, 29, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 122, 101, 114, 111, + 76, 0, 171, 171, 33, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 140, 3, + 0, 0, 151, 3, 0, 0, + 164, 3, 0, 0, 1, 0, + 0, 0, 180, 3, 0, 0, + 0, 0, 0, 0, 192, 3, + 0, 0, 76, 4, 0, 0, + 8, 0, 0, 0, 92, 4, + 0, 0, 0, 0, 0, 0, + 188, 4, 0, 0, 196, 4, + 0, 0, 1, 0, 0, 0, + 212, 4, 0, 0, 0, 0, + 0, 0, 224, 4, 0, 0, + 196, 4, 0, 0, 3, 0, + 0, 0, 232, 4, 0, 0, + 0, 0, 0, 0, 12, 5, + 0, 0, 196, 4, 0, 0, + 3, 0, 0, 0, 20, 5, + 0, 0, 0, 0, 0, 0, + 56, 5, 0, 0, 196, 4, + 0, 0, 1, 0, 0, 0, + 68, 5, 0, 0, 0, 0, + 0, 0, 80, 5, 0, 0, + 92, 5, 0, 0, 3, 0, + 0, 0, 108, 5, 0, 0, + 0, 0, 0, 0, 144, 5, + 0, 0, 236, 3, 0, 0, + 3, 0, 0, 0, 152, 5, + 0, 0, 0, 0, 0, 0, + 188, 5, 0, 0, 200, 5, + 0, 0, 9, 0, 0, 0, + 216, 5, 0, 0, 0, 0, + 0, 0, 68, 6, 0, 0, + 196, 4, 0, 0, 3, 0, + 0, 0, 80, 6, 0, 0, + 116, 6, 0, 0, 121, 6, + 0, 0, 216, 6, 0, 0, + 6, 0, 0, 0, 232, 6, + 0, 0, 192, 3, 0, 0, + 121, 6, 0, 0, 216, 6, + 0, 0, 5, 0, 0, 0, + 48, 7, 0, 0, 0, 0, + 0, 0, 108, 7, 0, 0, + 180, 7, 0, 0, 3, 0, + 0, 0, 196, 7, 0, 0, + 0, 0, 0, 0, 232, 7, + 0, 0, 196, 4, 0, 0, + 1, 0, 0, 0, 244, 7, + 0, 0, 0, 0, 0, 0, + 0, 8, 0, 0, 196, 4, + 0, 0, 1, 0, 0, 0, + 8, 8, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 81, 0, 0, 5, + 243, 0, 15, 160, 0, 0, + 64, 64, 0, 0, 0, 0, + 0, 0, 128, 63, 0, 0, + 0, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 3, 128, 3, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 4, 128, 4, 0, + 15, 144, 5, 0, 0, 3, + 0, 0, 15, 128, 3, 0, + 228, 144, 243, 0, 0, 160, + 46, 0, 0, 2, 0, 0, + 15, 176, 0, 0, 225, 128, + 5, 0, 0, 4, 1, 0, + 15, 128, 4, 0, 85, 144, 26, 32, 228, 160, 0, 0, - 255, 176, 4, 0, 255, 144, - 0, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 1, 128, - 1, 0, 228, 144, 0, 0, - 228, 128, 9, 0, 0, 3, - 0, 0, 1, 128, 0, 0, + 0, 176, 4, 0, 0, 5, + 1, 0, 15, 128, 26, 32, + 228, 160, 0, 0, 85, 176, + 4, 0, 0, 144, 1, 0, + 228, 128, 4, 0, 0, 5, + 0, 0, 15, 128, 26, 32, + 228, 160, 0, 0, 170, 176, + 4, 0, 170, 144, 1, 0, + 228, 128, 4, 0, 0, 5, + 0, 0, 15, 128, 26, 32, + 228, 160, 0, 0, 255, 176, + 4, 0, 255, 144, 0, 0, + 228, 128, 8, 0, 0, 3, + 1, 0, 1, 128, 1, 0, 228, 144, 0, 0, 228, 128, - 5, 0, 0, 4, 2, 0, + 9, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 228, 144, + 0, 0, 228, 128, 5, 0, + 0, 4, 2, 0, 15, 128, + 4, 0, 85, 144, 27, 32, + 228, 160, 0, 0, 0, 176, + 5, 0, 0, 4, 3, 0, 15, 128, 4, 0, 85, 144, - 27, 32, 228, 160, 0, 0, - 0, 176, 5, 0, 0, 4, - 3, 0, 15, 128, 4, 0, - 85, 144, 28, 32, 228, 160, - 0, 0, 0, 176, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 85, 176, 4, 0, 0, 144, - 2, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 170, 176, 4, 0, 170, 144, - 2, 0, 228, 128, 4, 0, - 0, 5, 3, 0, 15, 128, - 28, 32, 228, 160, 0, 0, - 170, 176, 4, 0, 170, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 3, 0, 15, 128, 28, 32, 228, 160, 0, 0, - 255, 176, 4, 0, 255, 144, - 3, 0, 228, 128, 4, 0, - 0, 5, 2, 0, 15, 128, - 27, 32, 228, 160, 0, 0, - 255, 176, 4, 0, 255, 144, + 0, 176, 4, 0, 0, 5, + 3, 0, 15, 128, 28, 32, + 228, 160, 0, 0, 85, 176, + 4, 0, 0, 144, 3, 0, + 228, 128, 4, 0, 0, 5, + 2, 0, 15, 128, 27, 32, + 228, 160, 0, 0, 85, 176, + 4, 0, 0, 144, 2, 0, + 228, 128, 4, 0, 0, 5, + 2, 0, 15, 128, 27, 32, + 228, 160, 0, 0, 170, 176, + 4, 0, 170, 144, 2, 0, + 228, 128, 4, 0, 0, 5, + 3, 0, 15, 128, 28, 32, + 228, 160, 0, 0, 170, 176, + 4, 0, 170, 144, 3, 0, + 228, 128, 4, 0, 0, 5, + 3, 0, 15, 128, 28, 32, + 228, 160, 0, 0, 255, 176, + 4, 0, 255, 144, 3, 0, + 228, 128, 4, 0, 0, 5, + 2, 0, 15, 128, 27, 32, + 228, 160, 0, 0, 255, 176, + 4, 0, 255, 144, 2, 0, + 228, 128, 8, 0, 0, 3, + 1, 0, 2, 128, 1, 0, + 228, 144, 2, 0, 228, 128, + 9, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 228, 144, 2, 0, 228, 128, 8, 0, - 0, 3, 1, 0, 2, 128, - 1, 0, 228, 144, 2, 0, + 0, 3, 1, 0, 4, 128, + 1, 0, 228, 144, 3, 0, 228, 128, 9, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 228, 144, 2, 0, 228, 128, - 8, 0, 0, 3, 1, 0, - 4, 128, 1, 0, 228, 144, - 3, 0, 228, 128, 9, 0, - 0, 3, 0, 0, 4, 128, - 0, 0, 228, 144, 3, 0, - 228, 128, 8, 0, 0, 3, - 2, 0, 1, 128, 1, 0, - 228, 128, 19, 0, 228, 160, + 0, 0, 4, 128, 0, 0, + 228, 144, 3, 0, 228, 128, 8, 0, 0, 3, 2, 0, - 2, 128, 1, 0, 228, 128, - 20, 0, 228, 160, 8, 0, - 0, 3, 2, 0, 4, 128, - 1, 0, 228, 128, 21, 0, - 228, 160, 36, 0, 0, 2, - 1, 0, 7, 128, 2, 0, - 228, 128, 8, 0, 0, 3, - 2, 0, 1, 128, 3, 0, - 228, 161, 1, 0, 228, 128, + 1, 128, 1, 0, 228, 128, + 19, 0, 228, 160, 8, 0, + 0, 3, 2, 0, 2, 128, + 1, 0, 228, 128, 20, 0, + 228, 160, 8, 0, 0, 3, + 2, 0, 4, 128, 1, 0, + 228, 128, 21, 0, 228, 160, + 36, 0, 0, 2, 1, 0, + 7, 128, 2, 0, 228, 128, 8, 0, 0, 3, 2, 0, - 2, 128, 4, 0, 228, 161, + 1, 128, 3, 0, 228, 161, 1, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 4, 128, - 5, 0, 228, 161, 1, 0, - 228, 128, 13, 0, 0, 3, - 3, 0, 7, 128, 2, 0, - 228, 128, 243, 0, 85, 160, - 5, 0, 0, 3, 2, 0, + 0, 3, 2, 0, 2, 128, + 4, 0, 228, 161, 1, 0, + 228, 128, 8, 0, 0, 3, + 2, 0, 4, 128, 5, 0, + 228, 161, 1, 0, 228, 128, + 13, 0, 0, 3, 3, 0, 7, 128, 2, 0, 228, 128, - 3, 0, 228, 128, 5, 0, - 0, 3, 4, 0, 7, 128, - 2, 0, 85, 128, 7, 0, - 228, 160, 4, 0, 0, 4, - 2, 0, 11, 128, 2, 0, - 0, 128, 6, 0, 164, 160, - 4, 0, 164, 128, 4, 0, - 0, 4, 2, 0, 7, 128, - 2, 0, 170, 128, 8, 0, - 228, 160, 2, 0, 244, 128, - 1, 0, 0, 2, 4, 0, - 7, 128, 0, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 7, 224, 2, 0, 228, 128, - 4, 0, 228, 128, 1, 0, - 228, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 255, 144, 9, 0, 0, 3, - 2, 0, 1, 128, 0, 0, - 228, 128, 15, 0, 228, 160, - 9, 0, 0, 3, 2, 0, - 2, 128, 0, 0, 228, 128, - 16, 0, 228, 160, 9, 0, - 0, 3, 2, 0, 4, 128, - 0, 0, 228, 128, 17, 0, - 228, 160, 2, 0, 0, 3, + 243, 0, 85, 160, 5, 0, + 0, 3, 2, 0, 7, 128, + 2, 0, 228, 128, 3, 0, + 228, 128, 5, 0, 0, 3, + 4, 0, 7, 128, 2, 0, + 85, 128, 7, 0, 228, 160, + 4, 0, 0, 4, 2, 0, + 11, 128, 2, 0, 0, 128, + 6, 0, 164, 160, 4, 0, + 164, 128, 4, 0, 0, 4, 2, 0, 7, 128, 2, 0, - 228, 129, 12, 0, 228, 160, - 36, 0, 0, 2, 4, 0, - 7, 128, 2, 0, 228, 128, + 170, 128, 8, 0, 228, 160, + 2, 0, 244, 128, 1, 0, + 0, 2, 4, 0, 7, 128, + 0, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 7, 224, + 2, 0, 228, 128, 4, 0, + 228, 128, 1, 0, 228, 160, + 1, 0, 0, 2, 0, 0, + 8, 128, 0, 0, 255, 144, + 9, 0, 0, 3, 2, 0, + 1, 128, 0, 0, 228, 128, + 15, 0, 228, 160, 9, 0, + 0, 3, 2, 0, 2, 128, + 0, 0, 228, 128, 16, 0, + 228, 160, 9, 0, 0, 3, + 2, 0, 4, 128, 0, 0, + 228, 128, 17, 0, 228, 160, 2, 0, 0, 3, 2, 0, + 7, 128, 2, 0, 228, 129, + 12, 0, 228, 160, 36, 0, + 0, 2, 4, 0, 7, 128, + 2, 0, 228, 128, 2, 0, + 0, 3, 2, 0, 7, 128, + 4, 0, 228, 128, 3, 0, + 228, 161, 36, 0, 0, 2, + 5, 0, 7, 128, 2, 0, + 228, 128, 8, 0, 0, 3, + 2, 0, 1, 128, 5, 0, + 228, 128, 1, 0, 228, 128, + 2, 0, 0, 3, 5, 0, 7, 128, 4, 0, 228, 128, - 3, 0, 228, 161, 36, 0, - 0, 2, 5, 0, 7, 128, - 2, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 1, 128, - 5, 0, 228, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 5, 0, 7, 128, 4, 0, - 228, 128, 4, 0, 228, 161, - 2, 0, 0, 3, 4, 0, - 7, 128, 4, 0, 228, 128, - 5, 0, 228, 161, 36, 0, - 0, 2, 6, 0, 7, 128, - 4, 0, 228, 128, 8, 0, - 0, 3, 2, 0, 4, 128, - 6, 0, 228, 128, 1, 0, - 228, 128, 36, 0, 0, 2, - 4, 0, 7, 128, 5, 0, + 4, 0, 228, 161, 2, 0, + 0, 3, 4, 0, 7, 128, + 4, 0, 228, 128, 5, 0, + 228, 161, 36, 0, 0, 2, + 6, 0, 7, 128, 4, 0, 228, 128, 8, 0, 0, 3, - 2, 0, 2, 128, 4, 0, + 2, 0, 4, 128, 6, 0, 228, 128, 1, 0, 228, 128, - 11, 0, 0, 3, 1, 0, - 7, 128, 2, 0, 228, 128, - 243, 0, 85, 160, 5, 0, + 36, 0, 0, 2, 4, 0, + 7, 128, 5, 0, 228, 128, + 8, 0, 0, 3, 2, 0, + 2, 128, 4, 0, 228, 128, + 1, 0, 228, 128, 11, 0, 0, 3, 1, 0, 7, 128, - 3, 0, 228, 128, 1, 0, - 228, 128, 15, 0, 0, 2, - 2, 0, 1, 128, 1, 0, - 0, 128, 15, 0, 0, 2, - 2, 0, 2, 128, 1, 0, - 85, 128, 15, 0, 0, 2, - 2, 0, 4, 128, 1, 0, - 170, 128, 5, 0, 0, 3, - 1, 0, 7, 128, 2, 0, - 228, 128, 2, 0, 255, 160, - 14, 0, 0, 2, 1, 0, + 2, 0, 228, 128, 243, 0, + 85, 160, 5, 0, 0, 3, + 1, 0, 7, 128, 3, 0, + 228, 128, 1, 0, 228, 128, + 15, 0, 0, 2, 2, 0, + 1, 128, 1, 0, 0, 128, + 15, 0, 0, 2, 2, 0, 2, 128, 1, 0, 85, 128, - 5, 0, 0, 3, 2, 0, - 7, 128, 1, 0, 85, 128, - 10, 0, 228, 160, 14, 0, - 0, 2, 1, 0, 1, 128, - 1, 0, 0, 128, 14, 0, + 15, 0, 0, 2, 2, 0, + 4, 128, 1, 0, 170, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 2, 0, 228, 128, + 2, 0, 255, 160, 14, 0, 0, 2, 1, 0, 2, 128, - 1, 0, 170, 128, 4, 0, - 0, 4, 1, 0, 13, 128, - 1, 0, 0, 128, 9, 0, - 148, 160, 2, 0, 148, 128, - 4, 0, 0, 4, 1, 0, - 7, 128, 1, 0, 85, 128, - 11, 0, 228, 160, 1, 0, - 248, 128, 5, 0, 0, 3, - 1, 0, 7, 224, 1, 0, - 228, 128, 2, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 4, 192, 0, 0, 228, 128, - 24, 0, 228, 160, 9, 0, - 0, 3, 1, 0, 1, 128, - 0, 0, 228, 128, 14, 0, - 228, 160, 11, 0, 0, 3, + 1, 0, 85, 128, 5, 0, + 0, 3, 2, 0, 7, 128, + 1, 0, 85, 128, 10, 0, + 228, 160, 14, 0, 0, 2, 1, 0, 1, 128, 1, 0, - 0, 128, 243, 0, 85, 160, - 10, 0, 0, 3, 1, 0, - 8, 224, 1, 0, 0, 128, - 243, 0, 170, 160, 9, 0, - 0, 3, 1, 0, 1, 128, - 0, 0, 228, 128, 22, 0, + 0, 128, 14, 0, 0, 2, + 1, 0, 2, 128, 1, 0, + 170, 128, 4, 0, 0, 4, + 1, 0, 13, 128, 1, 0, + 0, 128, 9, 0, 148, 160, + 2, 0, 148, 128, 4, 0, + 0, 4, 1, 0, 7, 128, + 1, 0, 85, 128, 11, 0, + 228, 160, 1, 0, 248, 128, + 5, 0, 0, 3, 1, 0, + 7, 224, 1, 0, 228, 128, + 2, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 4, 192, + 0, 0, 228, 128, 24, 0, 228, 160, 9, 0, 0, 3, - 1, 0, 2, 128, 0, 0, - 228, 128, 23, 0, 228, 160, - 9, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 128, - 25, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 0, 128, 242, 0, - 228, 160, 1, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 8, 192, 0, 0, 0, 128, - 1, 0, 0, 2, 0, 0, - 8, 224, 0, 0, 255, 160, - 1, 0, 0, 2, 2, 0, - 3, 224, 2, 0, 228, 144, - 255, 255, 0, 0, 83, 72, - 68, 82, 28, 10, 0, 0, - 64, 0, 1, 0, 135, 2, - 0, 0, 89, 8, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 242, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 2, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 242, 16, - 16, 0, 4, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 2, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 6, 0, 0, 0, - 38, 0, 0, 11, 0, 208, - 0, 0, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 3, 0, + 1, 0, 1, 128, 0, 0, + 228, 128, 14, 0, 228, 160, + 11, 0, 0, 3, 1, 0, + 1, 128, 1, 0, 0, 128, + 243, 0, 85, 160, 10, 0, + 0, 3, 1, 0, 8, 224, + 1, 0, 0, 128, 243, 0, + 170, 160, 9, 0, 0, 3, + 1, 0, 1, 128, 0, 0, + 228, 128, 22, 0, 228, 160, + 9, 0, 0, 3, 1, 0, + 2, 128, 0, 0, 228, 128, + 23, 0, 228, 160, 9, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 128, 25, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 0, 128, 242, 0, 228, 160, + 1, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 8, 192, + 0, 0, 0, 128, 1, 0, + 0, 2, 0, 0, 8, 224, + 0, 0, 255, 160, 1, 0, + 0, 2, 2, 0, 3, 224, + 2, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 28, 10, 0, 0, 64, 0, + 1, 0, 135, 2, 0, 0, + 89, 8, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 242, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 114, 16, 16, 0, + 1, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 2, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 3, 0, 0, 0, 95, 0, + 0, 3, 242, 16, 16, 0, + 4, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 2, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 104, 0, 0, 2, + 6, 0, 0, 0, 38, 0, + 0, 11, 0, 208, 0, 0, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 3, 0, 0, 0, 2, 64, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 21, 16, 0, - 4, 0, 0, 0, 70, 142, + 0, 0, 3, 0, 0, 0, + 56, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 21, 16, 0, 4, 0, + 0, 0, 70, 142, 32, 6, + 0, 0, 0, 0, 26, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 26, 0, 0, 0, 26, 0, + 26, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 26, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 26, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 166, 26, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 12, 242, 0, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 26, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 166, 26, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 26, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 246, 31, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 70, 18, 16, 0, 1, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 26, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 4, 0, 0, 0, 70, 14, + 70, 2, 16, 0, 1, 0, + 0, 0, 17, 0, 0, 7, + 18, 0, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, - 16, 0, 0, 7, 18, 0, - 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 17, 0, - 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 70, 30, + 56, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 86, 21, 16, 0, 4, 0, + 0, 0, 70, 142, 32, 6, + 0, 0, 0, 0, 27, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 27, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 3, 0, - 0, 0, 86, 21, 16, 0, - 4, 0, 0, 0, 70, 142, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 27, 0, 0, 0, 26, 0, + 27, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 27, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 27, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 166, 26, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 12, 242, 0, + 166, 26, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 27, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 246, 31, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 7, 34, 0, 16, 0, + 2, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 17, 0, 0, 7, + 34, 0, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, 16, 0, 3, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 27, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 4, 0, 0, 0, 70, 14, + 56, 0, 0, 10, 242, 0, 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 34, 0, - 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 17, 0, - 0, 7, 34, 0, 16, 0, - 1, 0, 0, 0, 70, 30, + 86, 21, 16, 0, 4, 0, + 0, 0, 70, 142, 32, 6, + 0, 0, 0, 0, 28, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 28, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 56, 0, 0, 10, - 242, 0, 16, 0, 3, 0, - 0, 0, 86, 21, 16, 0, - 4, 0, 0, 0, 70, 142, + 6, 16, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, 32, 6, 0, 0, 0, 0, - 28, 0, 0, 0, 26, 0, + 28, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 28, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 12, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 28, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 166, 26, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 12, 242, 0, + 166, 26, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 12, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 6, 0, 0, 0, 0, + 28, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 70, 142, 32, 6, 0, 0, - 0, 0, 28, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 246, 31, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 7, 66, 0, - 16, 0, 2, 0, 0, 0, - 70, 18, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 17, 0, + 246, 31, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 16, 0, 0, 7, 66, 0, 16, 0, - 1, 0, 0, 0, 70, 30, + 2, 0, 0, 0, 70, 18, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 7, + 66, 0, 16, 0, 1, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, + 34, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, + 20, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 16, 0, 0, 8, 66, 0, + 0, 0, 21, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 21, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 0, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 2, + 56, 0, 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 18, 0, - 16, 0, 2, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 18, 0, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 34, 0, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 9, 66, 0, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 29, 0, + 0, 10, 114, 0, 16, 0, 3, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 34, 0, 16, 0, 2, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 16, 0, 0, 9, 66, 0, - 16, 0, 2, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 29, 0, 0, 10, 114, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 2, 64, 0, 0, + 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 10, 114, 0, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 2, 0, + 0, 0, 1, 0, 0, 10, + 114, 0, 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 4, 0, 0, 0, - 86, 5, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 50, 0, 0, 10, - 178, 0, 16, 0, 2, 0, - 0, 0, 6, 0, 16, 0, - 2, 0, 0, 0, 70, 136, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 70, 8, - 16, 0, 4, 0, 0, 0, - 50, 0, 0, 10, 114, 0, + 3, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 0, 0, + 56, 0, 0, 7, 114, 0, 16, 0, 2, 0, 0, 0, - 166, 10, 16, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 70, 3, 16, 0, - 2, 0, 0, 0, 50, 0, - 0, 11, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 56, 0, + 0, 8, 114, 0, 16, 0, + 4, 0, 0, 0, 86, 5, 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 50, 0, 0, 10, 178, 0, + 16, 0, 2, 0, 0, 0, + 6, 0, 16, 0, 2, 0, + 0, 0, 70, 136, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 70, 8, 16, 0, + 4, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 2, 0, 0, 0, 166, 10, + 16, 0, 2, 0, 0, 0, 70, 130, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 130, 32, + 0, 0, 8, 0, 0, 0, + 70, 3, 16, 0, 2, 0, + 0, 0, 50, 0, 0, 11, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 16, 16, 0, 0, 0, 0, 0, - 58, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 0, - 16, 0, 1, 0, 0, 0, - 58, 16, 16, 0, 0, 0, + 17, 0, 0, 8, 18, 0, + 16, 0, 2, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 8, - 18, 0, 16, 0, 2, 0, + 34, 0, 16, 0, 2, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 17, 0, - 0, 8, 34, 0, 16, 0, + 16, 0, 0, 0, 17, 0, + 0, 8, 66, 0, 16, 0, 2, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 17, 0, 0, 8, 66, 0, - 16, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 9, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 2, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 16, 0, 0, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 70, 2, + 0, 0, 17, 0, 0, 0, + 0, 0, 0, 9, 114, 0, 16, 0, 2, 0, 0, 0, - 68, 0, 0, 5, 130, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 2, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 16, 0, 0, 7, 130, 0, 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 4, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 246, 15, + 2, 0, 0, 0, 68, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 2, 0, 0, 0, 70, 2, + 50, 0, 0, 11, 114, 0, 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 68, 0, 0, 5, + 70, 2, 16, 0, 2, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 7, 130, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 4, 0, 0, 0, 246, 15, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 2, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 4, 0, + 0, 0, 246, 15, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 16, 0, 0, 7, 18, 0, + 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, 4, 0, - 0, 0, 16, 0, 0, 7, - 18, 0, 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 0, + 0, 11, 114, 0, 16, 0, + 5, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 50, 0, 0, 11, 114, 0, - 16, 0, 5, 0, 0, 0, + 16, 0, 2, 0, 0, 0, 70, 2, 16, 0, 2, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 130, 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 50, 0, 0, 11, - 114, 0, 16, 0, 2, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 16, 0, 0, 7, + 130, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 246, 15, + 5, 0, 0, 0, 70, 2, + 16, 0, 5, 0, 0, 0, + 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 5, 0, + 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 5, 0, 0, 0, + 16, 0, 0, 7, 34, 0, + 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 68, 0, 0, 5, 130, 0, 16, 0, 0, 0, 0, 0, 58, 0, 16, 0, 0, 0, 0, 0, 56, 0, 0, 7, 114, 0, 16, 0, - 5, 0, 0, 0, 246, 15, + 2, 0, 0, 0, 246, 15, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 5, 0, + 70, 2, 16, 0, 2, 0, 0, 0, 16, 0, 0, 7, - 34, 0, 16, 0, 4, 0, + 66, 0, 16, 0, 4, 0, 0, 0, 70, 2, 16, 0, - 5, 0, 0, 0, 70, 2, + 2, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 16, 0, 0, 7, 130, 0, + 52, 0, 0, 10, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 68, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 2, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 66, 0, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 52, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 4, 0, + 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 47, 0, - 0, 5, 114, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 114, 0, - 16, 0, 0, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 70, 2, 16, 0, 0, 0, - 0, 0, 246, 143, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 25, 0, 0, 5, + 0, 0, 47, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, 114, 0, 16, 0, - 2, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 50, 0, 0, 10, 178, 0, + 0, 0, 0, 0, 70, 2, 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 136, 32, 0, - 0, 0, 0, 0, 9, 0, - 0, 0, 70, 8, 16, 0, - 2, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 10, + 246, 143, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 25, 0, 0, 5, 114, 0, 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 70, 3, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, 0, 0, 56, 0, 0, 8, - 114, 32, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, + 114, 0, 16, 0, 2, 0, + 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 130, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 17, 32, - 0, 8, 130, 32, 16, 0, - 1, 0, 0, 0, 70, 14, + 10, 0, 0, 0, 50, 0, + 0, 10, 178, 0, 16, 0, + 0, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 136, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 70, 8, 16, 0, 2, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 0, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 70, 3, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 114, 32, 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 5, 50, 32, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 17, 32, 0, 8, + 130, 32, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 2, 0, 0, 0, 70, 16, 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 2, 0, + 17, 0, 0, 8, 18, 32, + 16, 0, 3, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 8, - 18, 32, 16, 0, 3, 0, + 34, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 17, 0, - 0, 8, 34, 32, 16, 0, + 23, 0, 0, 0, 17, 0, + 0, 8, 66, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, 0, 0, - 0, 0, 23, 0, 0, 0, - 17, 0, 0, 8, 66, 32, + 0, 0, 24, 0, 0, 0, + 17, 0, 0, 8, 130, 32, 16, 0, 3, 0, 0, 0, 70, 14, 16, 0, 1, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 24, 0, - 0, 0, 17, 0, 0, 8, - 130, 32, 16, 0, 3, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, - 184, 0, 0, 0, 5, 0, - 0, 0, 8, 0, 0, 0, - 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 184, 0, + 0, 0, 5, 0, 0, 0, + 8, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, - 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 7, 0, 0, - 147, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 3, 0, 0, - 156, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 7, 7, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 15, 15, 0, 0, - 169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 3, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 15, 15, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 78, 79, 82, 77, 65, 76, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 66, 76, - 69, 78, 68, 73, 78, 68, - 73, 67, 69, 83, 0, 66, - 76, 69, 78, 68, 87, 69, - 73, 71, 72, 84, 0, 171, - 171, 171, 79, 83, 71, 78, - 132, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 15, 15, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 104, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 15, 15, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 79, + 82, 77, 65, 76, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 66, 76, 69, 78, + 68, 73, 78, 68, 73, 67, + 69, 83, 0, 66, 76, 69, + 78, 68, 87, 69, 73, 71, + 72, 84, 0, 171, 171, 171, + 79, 83, 71, 78, 132, 0, + 0, 0, 4, 0, 0, 0, + 8, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 3, 12, 0, 0, - 119, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 104, 0, 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 67, 79, 76, 79, 82, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171 + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 110, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 3, 12, 0, 0, 119, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 15, 0, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingOneBone.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingOneBone.inc index af4be94946065d523148099cbb2b59085f621504..146f175ab9dba15411e156be84e37ab325a9c7ed 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingOneBone.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingOneBone.inc @@ -42,75 +42,125 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0.x, v3.x, c243.x mova a0.x, r0.x - mul r0, v4.x, c26[a0.x] - dp3 r1.x, v1, r0 - dp4 r0.x, v0, r0 - mul r2, v4.x, c27[a0.x] - mul r3, v4.x, c28[a0.x] - dp3 r1.y, v1, r2 - dp4 r0.y, v0, r2 - dp3 r1.z, v1, r3 - dp4 r0.z, v0, r3 + mul r0, v4.x, c26[a0.x] // ::skinning<0,3,6,9> + +#line 56 + dp3 r1.x, v1, r0 // Skin::vin<4> + dp4 r0.x, v0, r0 // Skin::vin<0> + +#line 52 + mul r2, v4.x, c27[a0.x] // ::skinning<1,4,7,10> + mul r3, v4.x, c28[a0.x] // ::skinning<2,5,8,11> + +#line 56 + dp3 r1.y, v1, r2 // Skin::vin<5> + dp4 r0.y, v0, r2 // Skin::vin<1> + dp3 r1.z, v1, r3 // Skin::vin<6> + dp4 r0.z, v0, r3 // Skin::vin<2> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r2.x, r1, c19 dp3 r2.y, r1, c20 dp3 r2.z, r1, c21 - nrm r1.xyz, r2 - dp3 r2.x, -c3, r1 - dp3 r2.y, -c4, r1 - dp3 r2.z, -c5, r1 - sge r3.xyz, r2, c243.y - mul r2.xyz, r2, r3 + nrm r1.xyz, r2 // ::worldNormal<0,1,2> + +#line 36 + dp3 r2.x, -c3, r1 // ::dotL<0> + dp3 r2.y, -c4, r1 // ::dotL<1> + dp3 r2.z, -c5, r1 // ::dotL<2> + +#line 39 + sge r3.xyz, r2, c243.y // ::zeroL<0,1,2> + mul r2.xyz, r2, r3 // ::diffuse<0,1,2> + +#line 46 mul r4.xyz, r2.y, c7 mad r2.xyw, r2.x, c6.xyzz, r4.xyzz mad r2.xyz, r2.z, c8, r2.xyww - mov r4.xyz, c0 - mad oT0.xyz, r2, r4, c1 + mov r4.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r2, r4, c1 // ::VSSkinnedVertexLightingOneBone<0,1,2> + +#line 57 mov r0.w, v0.w - dp4 r2.x, r0, c15 - dp4 r2.y, r0, c16 - dp4 r2.z, r0, c17 + dp4 r2.x, r0, c15 // ::pos_ws<0> + dp4 r2.y, r0, c16 // ::pos_ws<1> + dp4 r2.z, r0, c17 // ::pos_ws<2> add r2.xyz, -r2, c12 - nrm r4.xyz, r2 + nrm r4.xyz, r2 // ::eyeVector<0,1,2> + +#line 33 add r2.xyz, r4, -c3 - nrm r5.xyz, r2 - dp3 r2.x, r5, r1 + nrm r5.xyz, r2 // ::halfVectors<0,1,2> + +#line 37 + dp3 r2.x, r5, r1 // ::dotH<0> + +#line 33 add r5.xyz, r4, -c4 add r4.xyz, r4, -c5 - nrm r6.xyz, r4 - dp3 r2.z, r6, r1 - nrm r4.xyz, r5 - dp3 r2.y, r4, r1 + nrm r6.xyz, r4 // ::halfVectors<6,7,8> + +#line 37 + dp3 r2.z, r6, r1 // ::dotH<2> + +#line 33 + nrm r4.xyz, r5 // ::halfVectors<3,4,5> + +#line 37 + dp3 r2.y, r4, r1 // ::dotH<1> + +#line 42 max r1.xyz, r2, c243.y mul r1.xyz, r3, r1 log r2.x, r1.x log r2.y, r1.y log r2.z, r1.z mul r1.xyz, r2, c2.w - exp r1.y, r1.y + exp r1.y, r1.y // ::specular<1> + +#line 47 mul r2.xyz, r1.y, c10 - exp r1.x, r1.x - exp r1.y, r1.z + +#line 42 + exp r1.x, r1.x // ::specular<0> + exp r1.y, r1.z // ::specular<2> + +#line 47 mad r1.xzw, r1.x, c9.xyyz, r2.xyyz mad r1.xyz, r1.y, c11, r1.xzww - mul oT1.xyz, r1, c2 - dp4 oPos.z, r0, c24 + mul oT1.xyz, r1, c2 // ::VSSkinnedVertexLightingOneBone<4,5,6> + +#line 63 + dp4 oPos.z, r0, c24 // ::VSSkinnedVertexLightingOneBone<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r1.x, r0, c14 max r1.x, r1.x, c243.y - min oT1.w, r1.x, c243.z - dp4 r1.x, r0, c22 - dp4 r1.y, r0, c23 - dp4 r0.x, r0, c25 - mad oPos.xy, r0.x, c242, r1 - mov oPos.w, r0.x - mov oT0.w, c0.w - mov oT2.xy, v2 + min oT1.w, r1.x, c243.z // ::VSSkinnedVertexLightingOneBone<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r1.x, r0, c22 // ::vout<0> + dp4 r1.y, r0, c23 // ::vout<1> + dp4 r0.x, r0, c25 // ::vout<3> + +#line 61 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.x, c242, r1 // ::VSSkinnedVertexLightingOneBone<10,11> + mov oPos.w, r0.x // ::VSSkinnedVertexLightingOneBone<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c0.w // ::VSSkinnedVertexLightingOneBone<3> + +#line 65 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mov oT2.xy, v2 // ::VSSkinnedVertexLightingOneBone<8,9> // approximately 74 instruction slots used vs_4_0 @@ -195,17 +245,17 @@ ret const BYTE SkinnedEffect_VSSkinnedVertexLightingOneBone[] = { - 68, 88, 66, 67, 87, 31, - 224, 191, 86, 93, 247, 204, - 34, 99, 246, 236, 244, 110, - 198, 124, 1, 0, 0, 0, - 92, 14, 0, 0, 4, 0, + 68, 88, 66, 67, 138, 131, + 143, 200, 165, 140, 158, 241, + 96, 249, 47, 18, 4, 71, + 218, 185, 1, 0, 0, 0, + 56, 23, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 168, 4, 0, 0, 16, 13, - 0, 0, 208, 13, 0, 0, - 65, 111, 110, 57, 112, 4, - 0, 0, 112, 4, 0, 0, - 0, 2, 254, 255, 60, 4, + 132, 13, 0, 0, 236, 21, + 0, 0, 172, 22, 0, 0, + 65, 111, 110, 57, 76, 13, + 0, 0, 76, 13, 0, 0, + 0, 2, 254, 255, 24, 13, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -213,7 +263,385 @@ const BYTE SkinnedEffect_VSSkinnedVertexLightingOneBone[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 54, 2, 68, 66, 85, 71, + 40, 0, 0, 0, 172, 8, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 70, 0, 0, 0, + 20, 1, 0, 0, 15, 0, + 0, 0, 128, 7, 0, 0, + 120, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 224, 8, + 0, 0, 0, 0, 255, 255, + 248, 8, 0, 0, 0, 0, + 255, 255, 4, 9, 0, 0, + 0, 0, 255, 255, 16, 9, + 0, 0, 0, 0, 255, 255, + 28, 9, 0, 0, 0, 0, + 255, 255, 40, 9, 0, 0, + 52, 0, 0, 0, 52, 9, + 0, 0, 52, 0, 0, 0, + 68, 9, 0, 0, 52, 0, + 0, 0, 80, 9, 0, 0, + 56, 0, 0, 0, 100, 9, + 0, 0, 55, 0, 0, 0, + 116, 9, 0, 0, 52, 0, + 0, 0, 132, 9, 0, 0, + 52, 0, 0, 0, 152, 9, + 0, 0, 56, 0, 0, 0, + 172, 9, 0, 0, 55, 0, + 0, 0, 188, 9, 0, 0, + 56, 0, 0, 0, 204, 9, + 0, 0, 55, 0, 0, 0, + 220, 9, 0, 0, 59, 0, + 1, 0, 236, 9, 0, 0, + 59, 0, 1, 0, 252, 9, + 0, 0, 59, 0, 1, 0, + 12, 10, 0, 0, 59, 0, + 1, 0, 28, 10, 0, 0, + 36, 0, 1, 0, 40, 10, + 0, 0, 36, 0, 1, 0, + 56, 10, 0, 0, 36, 0, + 1, 0, 72, 10, 0, 0, + 39, 0, 1, 0, 88, 10, + 0, 0, 41, 0, 1, 0, + 104, 10, 0, 0, 46, 0, + 1, 0, 120, 10, 0, 0, + 46, 0, 1, 0, 136, 10, + 0, 0, 46, 0, 1, 0, + 156, 10, 0, 0, 46, 0, + 1, 0, 176, 10, 0, 0, + 46, 0, 1, 0, 188, 10, + 0, 0, 57, 0, 1, 0, + 208, 10, 0, 0, 57, 0, + 1, 0, 220, 10, 0, 0, + 57, 0, 1, 0, 236, 10, + 0, 0, 57, 0, 1, 0, + 252, 10, 0, 0, 58, 0, + 1, 0, 12, 11, 0, 0, + 58, 0, 1, 0, 28, 11, + 0, 0, 33, 0, 1, 0, + 40, 11, 0, 0, 33, 0, + 1, 0, 56, 11, 0, 0, + 37, 0, 1, 0, 68, 11, + 0, 0, 33, 0, 1, 0, + 84, 11, 0, 0, 33, 0, + 1, 0, 100, 11, 0, 0, + 33, 0, 1, 0, 116, 11, + 0, 0, 37, 0, 1, 0, + 128, 11, 0, 0, 33, 0, + 1, 0, 144, 11, 0, 0, + 37, 0, 1, 0, 156, 11, + 0, 0, 42, 0, 1, 0, + 172, 11, 0, 0, 42, 0, + 1, 0, 188, 11, 0, 0, + 42, 0, 1, 0, 204, 11, + 0, 0, 42, 0, 1, 0, + 216, 11, 0, 0, 42, 0, + 1, 0, 228, 11, 0, 0, + 42, 0, 1, 0, 240, 11, + 0, 0, 42, 0, 1, 0, + 0, 12, 0, 0, 47, 0, + 1, 0, 12, 12, 0, 0, + 42, 0, 1, 0, 28, 12, + 0, 0, 42, 0, 1, 0, + 40, 12, 0, 0, 47, 0, + 1, 0, 52, 12, 0, 0, + 47, 0, 1, 0, 72, 12, + 0, 0, 47, 0, 1, 0, + 92, 12, 0, 0, 63, 0, + 1, 0, 108, 12, 0, 0, + 14, 0, 2, 0, 124, 12, + 0, 0, 14, 0, 2, 0, + 140, 12, 0, 0, 14, 0, + 2, 0, 156, 12, 0, 0, + 63, 0, 1, 0, 172, 12, + 0, 0, 63, 0, 1, 0, + 188, 12, 0, 0, 63, 0, + 1, 0, 204, 12, 0, 0, + 61, 0, 0, 0, 220, 12, + 0, 0, 61, 0, 0, 0, + 240, 12, 0, 0, 46, 0, + 1, 0, 252, 12, 0, 0, + 65, 0, 0, 0, 8, 13, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 79, + 110, 101, 66, 111, 110, 101, + 0, 68, 105, 102, 102, 117, + 115, 101, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 151, 3, 0, 0, + 160, 3, 0, 0, 176, 3, + 0, 0, 160, 3, 0, 0, + 185, 3, 0, 0, 196, 3, + 0, 0, 212, 3, 0, 0, + 160, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 14, 0, + 1, 0, 4, 0, 224, 3, + 0, 0, 30, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 58, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 59, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 62, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 66, 0, 0, 0, + 10, 0, 11, 0, 255, 255, + 255, 255, 67, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 68, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 69, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 111, 116, 72, + 0, 171, 171, 171, 39, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 43, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 45, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 100, 111, + 116, 76, 0, 171, 171, 171, + 21, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 22, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 23, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 101, 121, 101, 86, 101, 99, + 116, 111, 114, 0, 171, 171, + 36, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 104, 97, 108, 102, 86, 101, + 99, 116, 111, 114, 115, 0, + 3, 0, 3, 0, 3, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 42, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 255, 255, 44, 0, + 0, 0, 3, 0, 4, 0, + 5, 0, 255, 255, 112, 111, + 115, 95, 119, 115, 0, 171, + 32, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 33, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 34, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 115, 107, 105, 110, 110, 105, + 110, 103, 0, 171, 171, 171, + 3, 0, 3, 0, 4, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 3, 0, + 6, 0, 9, 0, 11, 0, + 0, 0, 1, 0, 4, 0, + 7, 0, 10, 0, 12, 0, + 0, 0, 2, 0, 5, 0, + 8, 0, 11, 0, 115, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 52, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 54, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 55, 0, + 0, 0, 255, 255, 2, 0, + 255, 255, 255, 255, 83, 107, + 105, 110, 0, 118, 105, 110, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 111, + 114, 109, 97, 108, 0, 73, + 110, 100, 105, 99, 101, 115, + 0, 171, 171, 171, 1, 0, + 2, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 87, 101, 105, 103, + 104, 116, 115, 0, 233, 5, + 0, 0, 160, 3, 0, 0, + 242, 5, 0, 0, 120, 4, + 0, 0, 185, 3, 0, 0, + 196, 3, 0, 0, 249, 5, + 0, 0, 4, 6, 0, 0, + 20, 6, 0, 0, 160, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 28, 6, 0, 0, + 9, 0, 0, 0, 4, 0, + 255, 255, 255, 255, 255, 255, + 10, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 0, 0, 255, 255, + 5, 0, 255, 255, 255, 255, + 14, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 15, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 255, 255, + 16, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 4, 0, 0, 0, 9, 0, + 10, 0, 11, 0, 12, 0, + 5, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 16, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 221, 6, + 0, 0, 160, 3, 0, 0, + 151, 3, 0, 0, 160, 3, + 0, 0, 176, 3, 0, 0, + 120, 4, 0, 0, 228, 6, + 0, 0, 240, 6, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 0, 7, 0, 0, 63, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 64, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 65, 0, + 0, 0, 3, 0, 255, 255, + 255, 255, 255, 255, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 97, 108, 0, 20, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 122, 101, + 114, 111, 76, 0, 171, 171, + 24, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 68, 3, 0, 0, 79, 3, + 0, 0, 92, 3, 0, 0, + 1, 0, 0, 0, 108, 3, + 0, 0, 0, 0, 0, 0, + 120, 3, 0, 0, 0, 4, + 0, 0, 8, 0, 0, 0, + 16, 4, 0, 0, 0, 0, + 0, 0, 112, 4, 0, 0, + 120, 4, 0, 0, 1, 0, + 0, 0, 136, 4, 0, 0, + 0, 0, 0, 0, 148, 4, + 0, 0, 120, 4, 0, 0, + 3, 0, 0, 0, 156, 4, + 0, 0, 0, 0, 0, 0, + 192, 4, 0, 0, 120, 4, + 0, 0, 3, 0, 0, 0, + 200, 4, 0, 0, 0, 0, + 0, 0, 236, 4, 0, 0, + 120, 4, 0, 0, 1, 0, + 0, 0, 248, 4, 0, 0, + 0, 0, 0, 0, 4, 5, + 0, 0, 16, 5, 0, 0, + 3, 0, 0, 0, 32, 5, + 0, 0, 0, 0, 0, 0, + 68, 5, 0, 0, 160, 3, + 0, 0, 3, 0, 0, 0, + 76, 5, 0, 0, 0, 0, + 0, 0, 112, 5, 0, 0, + 124, 5, 0, 0, 3, 0, + 0, 0, 140, 5, 0, 0, + 0, 0, 0, 0, 176, 5, + 0, 0, 120, 4, 0, 0, + 3, 0, 0, 0, 188, 5, + 0, 0, 224, 5, 0, 0, + 229, 5, 0, 0, 68, 6, + 0, 0, 6, 0, 0, 0, + 84, 6, 0, 0, 120, 3, + 0, 0, 229, 5, 0, 0, + 68, 6, 0, 0, 5, 0, + 0, 0, 156, 6, 0, 0, + 0, 0, 0, 0, 216, 6, + 0, 0, 32, 7, 0, 0, + 3, 0, 0, 0, 48, 7, + 0, 0, 0, 0, 0, 0, + 84, 7, 0, 0, 120, 4, + 0, 0, 1, 0, 0, 0, + 96, 7, 0, 0, 0, 0, + 0, 0, 108, 7, 0, 0, + 120, 4, 0, 0, 1, 0, + 0, 0, 116, 7, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 243, 0, 15, 160, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 128, 63, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingTwoBones.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingTwoBones.inc index 9606fa319bd5d041744fe698820b4802cab5ae68..6006b6ea4530ef67606a5821e4aca39cd3a62a48 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingTwoBones.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SkinnedEffect_VSSkinnedVertexLightingTwoBones.inc @@ -42,78 +42,128 @@ // vs_2_0 def c243, 3, 0, 1, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 - dcl_texcoord3 v3 - dcl_texcoord4 v4 + dcl_texcoord v0 // vin<0,1,2,3> + dcl_texcoord1 v1 // vin<4,5,6> + dcl_texcoord2 v2 // vin<7,8> + dcl_texcoord3 v3 // vin<9,10,11,12> + dcl_texcoord4 v4 // vin<13,14,15,16> + +#line 52 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" mul r0.xy, v3, c243.x mova a0.xy, r0.yxzw mul r0, v4.y, c26[a0.x] - mad r0, c26[a0.y], v4.x, r0 - dp3 r1.x, v1, r0 - dp4 r0.x, v0, r0 + mad r0, c26[a0.y], v4.x, r0 // ::skinning<0,3,6,9> + +#line 56 + dp3 r1.x, v1, r0 // Skin::vin<4> + dp4 r0.x, v0, r0 // Skin::vin<0> + +#line 52 mul r2, v4.y, c27[a0.x] mul r3, v4.y, c28[a0.x] - mad r3, c28[a0.y], v4.x, r3 - mad r2, c27[a0.y], v4.x, r2 - dp3 r1.y, v1, r2 - dp4 r0.y, v0, r2 - dp3 r1.z, v1, r3 - dp4 r0.z, v0, r3 + mad r3, c28[a0.y], v4.x, r3 // ::skinning<2,5,8,11> + mad r2, c27[a0.y], v4.x, r2 // ::skinning<1,4,7,10> + +#line 56 + dp3 r1.y, v1, r2 // Skin::vin<5> + dp4 r0.y, v0, r2 // Skin::vin<1> + dp3 r1.z, v1, r3 // Skin::vin<6> + dp4 r0.z, v0, r3 // Skin::vin<2> + +#line 59 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" dp3 r2.x, r1, c19 dp3 r2.y, r1, c20 dp3 r2.z, r1, c21 - nrm r1.xyz, r2 - dp3 r2.x, -c3, r1 - dp3 r2.y, -c4, r1 - dp3 r2.z, -c5, r1 - sge r3.xyz, r2, c243.y - mul r2.xyz, r2, r3 + nrm r1.xyz, r2 // ::worldNormal<0,1,2> + +#line 36 + dp3 r2.x, -c3, r1 // ::dotL<0> + dp3 r2.y, -c4, r1 // ::dotL<1> + dp3 r2.z, -c5, r1 // ::dotL<2> + +#line 39 + sge r3.xyz, r2, c243.y // ::zeroL<0,1,2> + mul r2.xyz, r2, r3 // ::diffuse<0,1,2> + +#line 46 mul r4.xyz, r2.y, c7 mad r2.xyw, r2.x, c6.xyzz, r4.xyzz mad r2.xyz, r2.z, c8, r2.xyww - mov r4.xyz, c0 - mad oT0.xyz, r2, r4, c1 + mov r4.xyz, c0 // Parameters::DiffuseColor<0,1,2> + mad oT0.xyz, r2, r4, c1 // ::VSSkinnedVertexLightingTwoBones<0,1,2> + +#line 57 mov r0.w, v0.w - dp4 r2.x, r0, c15 - dp4 r2.y, r0, c16 - dp4 r2.z, r0, c17 + dp4 r2.x, r0, c15 // ::pos_ws<0> + dp4 r2.y, r0, c16 // ::pos_ws<1> + dp4 r2.z, r0, c17 // ::pos_ws<2> add r2.xyz, -r2, c12 - nrm r4.xyz, r2 + nrm r4.xyz, r2 // ::eyeVector<0,1,2> + +#line 33 add r2.xyz, r4, -c3 - nrm r5.xyz, r2 - dp3 r2.x, r5, r1 + nrm r5.xyz, r2 // ::halfVectors<0,1,2> + +#line 37 + dp3 r2.x, r5, r1 // ::dotH<0> + +#line 33 add r5.xyz, r4, -c4 add r4.xyz, r4, -c5 - nrm r6.xyz, r4 - dp3 r2.z, r6, r1 - nrm r4.xyz, r5 - dp3 r2.y, r4, r1 + nrm r6.xyz, r4 // ::halfVectors<6,7,8> + +#line 37 + dp3 r2.z, r6, r1 // ::dotH<2> + +#line 33 + nrm r4.xyz, r5 // ::halfVectors<3,4,5> + +#line 37 + dp3 r2.y, r4, r1 // ::dotH<1> + +#line 42 max r1.xyz, r2, c243.y mul r1.xyz, r3, r1 log r2.x, r1.x log r2.y, r1.y log r2.z, r1.z mul r1.xyz, r2, c2.w - exp r1.y, r1.y + exp r1.y, r1.y // ::specular<1> + +#line 47 mul r2.xyz, r1.y, c10 - exp r1.x, r1.x - exp r1.y, r1.z + +#line 42 + exp r1.x, r1.x // ::specular<0> + exp r1.y, r1.z // ::specular<2> + +#line 47 mad r1.xzw, r1.x, c9.xyyz, r2.xyyz mad r1.xyz, r1.y, c11, r1.xzww - mul oT1.xyz, r1, c2 - dp4 oPos.z, r0, c24 + mul oT1.xyz, r1, c2 // ::VSSkinnedVertexLightingTwoBones<4,5,6> + +#line 63 + dp4 oPos.z, r0, c24 // ::VSSkinnedVertexLightingTwoBones<12> + +#line 14 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Common.fxh" dp4 r1.x, r0, c14 max r1.x, r1.x, c243.y - min oT1.w, r1.x, c243.z - dp4 r1.x, r0, c22 - dp4 r1.y, r0, c23 - dp4 r0.x, r0, c25 - mad oPos.xy, r0.x, c242, r1 - mov oPos.w, r0.x - mov oT0.w, c0.w - mov oT2.xy, v2 + min oT1.w, r1.x, c243.z // ::VSSkinnedVertexLightingTwoBones<7> + +#line 63 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + dp4 r1.x, r0, c22 // ::vout<0> + dp4 r1.y, r0, c23 // ::vout<1> + dp4 r0.x, r0, c25 // ::vout<3> + +#line 77 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mad oPos.xy, r0.x, c242, r1 // ::VSSkinnedVertexLightingTwoBones<10,11> + mov oPos.w, r0.x // ::VSSkinnedVertexLightingTwoBones<13> + +#line 46 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\Lighting.fxh" + mov oT0.w, c0.w // ::VSSkinnedVertexLightingTwoBones<3> + +#line 81 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SkinnedEffect.fx" + mov oT2.xy, v2 // ::VSSkinnedVertexLightingTwoBones<8,9> // approximately 77 instruction slots used vs_4_0 @@ -201,17 +251,17 @@ ret const BYTE SkinnedEffect_VSSkinnedVertexLightingTwoBones[] = { - 68, 88, 66, 67, 166, 103, - 187, 213, 206, 42, 30, 135, - 227, 229, 242, 216, 73, 40, - 224, 75, 1, 0, 0, 0, - 64, 15, 0, 0, 4, 0, + 68, 88, 66, 67, 212, 21, + 13, 85, 47, 58, 239, 39, + 103, 86, 186, 79, 72, 239, + 197, 76, 1, 0, 0, 0, + 52, 24, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 240, 4, 0, 0, 244, 13, - 0, 0, 180, 14, 0, 0, - 65, 111, 110, 57, 184, 4, - 0, 0, 184, 4, 0, 0, - 0, 2, 254, 255, 132, 4, + 228, 13, 0, 0, 232, 22, + 0, 0, 168, 23, 0, 0, + 65, 111, 110, 57, 172, 13, + 0, 0, 172, 13, 0, 0, + 0, 2, 254, 255, 120, 13, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -219,7 +269,389 @@ const BYTE SkinnedEffect_VSSkinnedVertexLightingTwoBones[] = 48, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 2, 254, 255, 81, 0, + 0, 2, 254, 255, 254, 255, + 60, 2, 68, 66, 85, 71, + 40, 0, 0, 0, 196, 8, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 8, 1, + 0, 0, 73, 0, 0, 0, + 20, 1, 0, 0, 15, 0, + 0, 0, 152, 7, 0, 0, + 144, 3, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 107, + 105, 110, 110, 101, 100, 69, + 102, 102, 101, 99, 116, 46, + 102, 120, 0, 67, 58, 92, + 65, 84, 71, 32, 83, 97, + 109, 112, 108, 101, 32, 68, + 101, 118, 101, 108, 111, 112, + 109, 101, 110, 116, 92, 115, + 116, 95, 100, 101, 118, 92, + 75, 105, 116, 115, 92, 68, + 105, 114, 101, 99, 116, 88, + 84, 75, 92, 83, 114, 99, + 92, 83, 104, 97, 100, 101, + 114, 115, 92, 76, 105, 103, + 104, 116, 105, 110, 103, 46, + 102, 120, 104, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 67, 111, + 109, 109, 111, 110, 46, 102, + 120, 104, 0, 171, 171, 171, + 40, 0, 0, 0, 117, 0, + 0, 0, 190, 0, 0, 0, + 0, 0, 255, 255, 248, 8, + 0, 0, 0, 0, 255, 255, + 16, 9, 0, 0, 0, 0, + 255, 255, 28, 9, 0, 0, + 0, 0, 255, 255, 40, 9, + 0, 0, 0, 0, 255, 255, + 52, 9, 0, 0, 0, 0, + 255, 255, 64, 9, 0, 0, + 52, 0, 0, 0, 76, 9, + 0, 0, 52, 0, 0, 0, + 92, 9, 0, 0, 52, 0, + 0, 0, 104, 9, 0, 0, + 52, 0, 0, 0, 124, 9, + 0, 0, 56, 0, 0, 0, + 148, 9, 0, 0, 55, 0, + 0, 0, 164, 9, 0, 0, + 52, 0, 0, 0, 180, 9, + 0, 0, 52, 0, 0, 0, + 200, 9, 0, 0, 52, 0, + 0, 0, 220, 9, 0, 0, + 52, 0, 0, 0, 244, 9, + 0, 0, 56, 0, 0, 0, + 12, 10, 0, 0, 55, 0, + 0, 0, 28, 10, 0, 0, + 56, 0, 0, 0, 44, 10, + 0, 0, 55, 0, 0, 0, + 60, 10, 0, 0, 59, 0, + 1, 0, 76, 10, 0, 0, + 59, 0, 1, 0, 92, 10, + 0, 0, 59, 0, 1, 0, + 108, 10, 0, 0, 59, 0, + 1, 0, 124, 10, 0, 0, + 36, 0, 1, 0, 136, 10, + 0, 0, 36, 0, 1, 0, + 152, 10, 0, 0, 36, 0, + 1, 0, 168, 10, 0, 0, + 39, 0, 1, 0, 184, 10, + 0, 0, 41, 0, 1, 0, + 200, 10, 0, 0, 46, 0, + 1, 0, 216, 10, 0, 0, + 46, 0, 1, 0, 232, 10, + 0, 0, 46, 0, 1, 0, + 252, 10, 0, 0, 46, 0, + 1, 0, 16, 11, 0, 0, + 46, 0, 1, 0, 28, 11, + 0, 0, 57, 0, 1, 0, + 48, 11, 0, 0, 57, 0, + 1, 0, 60, 11, 0, 0, + 57, 0, 1, 0, 76, 11, + 0, 0, 57, 0, 1, 0, + 92, 11, 0, 0, 58, 0, + 1, 0, 108, 11, 0, 0, + 58, 0, 1, 0, 124, 11, + 0, 0, 33, 0, 1, 0, + 136, 11, 0, 0, 33, 0, + 1, 0, 152, 11, 0, 0, + 37, 0, 1, 0, 164, 11, + 0, 0, 33, 0, 1, 0, + 180, 11, 0, 0, 33, 0, + 1, 0, 196, 11, 0, 0, + 33, 0, 1, 0, 212, 11, + 0, 0, 37, 0, 1, 0, + 224, 11, 0, 0, 33, 0, + 1, 0, 240, 11, 0, 0, + 37, 0, 1, 0, 252, 11, + 0, 0, 42, 0, 1, 0, + 12, 12, 0, 0, 42, 0, + 1, 0, 28, 12, 0, 0, + 42, 0, 1, 0, 44, 12, + 0, 0, 42, 0, 1, 0, + 56, 12, 0, 0, 42, 0, + 1, 0, 68, 12, 0, 0, + 42, 0, 1, 0, 80, 12, + 0, 0, 42, 0, 1, 0, + 96, 12, 0, 0, 47, 0, + 1, 0, 108, 12, 0, 0, + 42, 0, 1, 0, 124, 12, + 0, 0, 42, 0, 1, 0, + 136, 12, 0, 0, 47, 0, + 1, 0, 148, 12, 0, 0, + 47, 0, 1, 0, 168, 12, + 0, 0, 47, 0, 1, 0, + 188, 12, 0, 0, 63, 0, + 1, 0, 204, 12, 0, 0, + 14, 0, 2, 0, 220, 12, + 0, 0, 14, 0, 2, 0, + 236, 12, 0, 0, 14, 0, + 2, 0, 252, 12, 0, 0, + 63, 0, 1, 0, 12, 13, + 0, 0, 63, 0, 1, 0, + 28, 13, 0, 0, 63, 0, + 1, 0, 44, 13, 0, 0, + 77, 0, 0, 0, 60, 13, + 0, 0, 77, 0, 0, 0, + 80, 13, 0, 0, 46, 0, + 1, 0, 92, 13, 0, 0, + 81, 0, 0, 0, 104, 13, + 0, 0, 80, 97, 114, 97, + 109, 101, 116, 101, 114, 115, + 0, 68, 105, 102, 102, 117, + 115, 101, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 86, 83, 83, 107, 105, 110, + 110, 101, 100, 86, 101, 114, + 116, 101, 120, 76, 105, 103, + 104, 116, 105, 110, 103, 84, + 119, 111, 66, 111, 110, 101, + 115, 0, 68, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 83, 112, 101, 99, + 117, 108, 97, 114, 0, 84, + 101, 120, 67, 111, 111, 114, + 100, 0, 171, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 111, 115, 105, + 116, 105, 111, 110, 80, 83, + 0, 171, 176, 3, 0, 0, + 184, 3, 0, 0, 200, 3, + 0, 0, 184, 3, 0, 0, + 209, 3, 0, 0, 220, 3, + 0, 0, 236, 3, 0, 0, + 184, 3, 0, 0, 5, 0, + 0, 0, 1, 0, 14, 0, + 1, 0, 4, 0, 248, 3, + 0, 0, 33, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 61, 0, 0, 0, + 4, 0, 5, 0, 6, 0, + 255, 255, 62, 0, 0, 0, + 255, 255, 255, 255, 12, 0, + 255, 255, 65, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 7, 0, 69, 0, 0, 0, + 10, 0, 11, 0, 255, 255, + 255, 255, 70, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 13, 0, 71, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 3, 0, 72, 0, 0, 0, + 8, 0, 9, 0, 255, 255, + 255, 255, 100, 105, 102, 102, + 117, 115, 101, 0, 1, 0, + 3, 0, 1, 0, 3, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, + 0, 0, 1, 0, 2, 0, + 255, 255, 100, 111, 116, 72, + 0, 171, 171, 171, 42, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 46, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 255, 255, 48, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 100, 111, + 116, 76, 0, 171, 171, 171, + 24, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 25, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 26, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 101, 121, 101, 86, 101, 99, + 116, 111, 114, 0, 171, 171, + 39, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 104, 97, 108, 102, 86, 101, + 99, 116, 111, 114, 115, 0, + 3, 0, 3, 0, 3, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 41, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 45, 0, + 0, 0, 6, 0, 7, 0, + 8, 0, 255, 255, 47, 0, + 0, 0, 3, 0, 4, 0, + 5, 0, 255, 255, 112, 111, + 115, 95, 119, 115, 0, 171, + 35, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 36, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 37, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 115, 107, 105, 110, 110, 105, + 110, 103, 0, 171, 171, 171, + 3, 0, 3, 0, 4, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 3, 0, + 6, 0, 9, 0, 14, 0, + 0, 0, 2, 0, 5, 0, + 8, 0, 11, 0, 15, 0, + 0, 0, 1, 0, 4, 0, + 7, 0, 10, 0, 115, 112, + 101, 99, 117, 108, 97, 114, + 0, 171, 171, 171, 55, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 57, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 58, 0, + 0, 0, 255, 255, 2, 0, + 255, 255, 255, 255, 83, 107, + 105, 110, 0, 118, 105, 110, + 0, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 78, 111, + 114, 109, 97, 108, 0, 73, + 110, 100, 105, 99, 101, 115, + 0, 171, 171, 171, 1, 0, + 2, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 87, 101, 105, 103, + 104, 116, 115, 0, 1, 6, + 0, 0, 184, 3, 0, 0, + 10, 6, 0, 0, 144, 4, + 0, 0, 209, 3, 0, 0, + 220, 3, 0, 0, 17, 6, + 0, 0, 28, 6, 0, 0, + 44, 6, 0, 0, 184, 3, + 0, 0, 5, 0, 0, 0, + 1, 0, 17, 0, 1, 0, + 5, 0, 52, 6, 0, 0, + 10, 0, 0, 0, 4, 0, + 255, 255, 255, 255, 255, 255, + 11, 0, 0, 0, 0, 0, + 255, 255, 255, 255, 255, 255, + 16, 0, 0, 0, 255, 255, + 5, 0, 255, 255, 255, 255, + 17, 0, 0, 0, 255, 255, + 1, 0, 255, 255, 255, 255, + 18, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 255, 255, + 19, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 255, 255, + 1, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 2, 0, 0, 0, 4, 0, + 5, 0, 6, 0, 255, 255, + 3, 0, 0, 0, 7, 0, + 8, 0, 255, 255, 255, 255, + 4, 0, 0, 0, 9, 0, + 10, 0, 11, 0, 12, 0, + 5, 0, 0, 0, 13, 0, + 14, 0, 15, 0, 16, 0, + 118, 111, 117, 116, 0, 80, + 111, 115, 95, 112, 115, 0, + 70, 111, 103, 70, 97, 99, + 116, 111, 114, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 245, 6, + 0, 0, 184, 3, 0, 0, + 176, 3, 0, 0, 184, 3, + 0, 0, 200, 3, 0, 0, + 144, 4, 0, 0, 252, 6, + 0, 0, 8, 7, 0, 0, + 5, 0, 0, 0, 1, 0, + 12, 0, 1, 0, 4, 0, + 24, 7, 0, 0, 66, 0, + 0, 0, 0, 0, 255, 255, + 255, 255, 255, 255, 67, 0, + 0, 0, 255, 255, 1, 0, + 255, 255, 255, 255, 68, 0, + 0, 0, 3, 0, 255, 255, + 255, 255, 255, 255, 119, 111, + 114, 108, 100, 78, 111, 114, + 109, 97, 108, 0, 23, 0, + 0, 0, 0, 0, 1, 0, + 2, 0, 255, 255, 122, 101, + 114, 111, 76, 0, 171, 171, + 27, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 255, 255, + 92, 3, 0, 0, 103, 3, + 0, 0, 116, 3, 0, 0, + 1, 0, 0, 0, 132, 3, + 0, 0, 0, 0, 0, 0, + 144, 3, 0, 0, 24, 4, + 0, 0, 8, 0, 0, 0, + 40, 4, 0, 0, 0, 0, + 0, 0, 136, 4, 0, 0, + 144, 4, 0, 0, 1, 0, + 0, 0, 160, 4, 0, 0, + 0, 0, 0, 0, 172, 4, + 0, 0, 144, 4, 0, 0, + 3, 0, 0, 0, 180, 4, + 0, 0, 0, 0, 0, 0, + 216, 4, 0, 0, 144, 4, + 0, 0, 3, 0, 0, 0, + 224, 4, 0, 0, 0, 0, + 0, 0, 4, 5, 0, 0, + 144, 4, 0, 0, 1, 0, + 0, 0, 16, 5, 0, 0, + 0, 0, 0, 0, 28, 5, + 0, 0, 40, 5, 0, 0, + 3, 0, 0, 0, 56, 5, + 0, 0, 0, 0, 0, 0, + 92, 5, 0, 0, 184, 3, + 0, 0, 3, 0, 0, 0, + 100, 5, 0, 0, 0, 0, + 0, 0, 136, 5, 0, 0, + 148, 5, 0, 0, 3, 0, + 0, 0, 164, 5, 0, 0, + 0, 0, 0, 0, 200, 5, + 0, 0, 144, 4, 0, 0, + 3, 0, 0, 0, 212, 5, + 0, 0, 248, 5, 0, 0, + 253, 5, 0, 0, 92, 6, + 0, 0, 6, 0, 0, 0, + 108, 6, 0, 0, 144, 3, + 0, 0, 253, 5, 0, 0, + 92, 6, 0, 0, 5, 0, + 0, 0, 180, 6, 0, 0, + 0, 0, 0, 0, 240, 6, + 0, 0, 56, 7, 0, 0, + 3, 0, 0, 0, 72, 7, + 0, 0, 0, 0, 0, 0, + 108, 7, 0, 0, 144, 4, + 0, 0, 1, 0, 0, 0, + 120, 7, 0, 0, 0, 0, + 0, 0, 132, 7, 0, 0, + 144, 4, 0, 0, 1, 0, + 0, 0, 140, 7, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 49, + 48, 46, 49, 0, 81, 0, 0, 5, 243, 0, 15, 160, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 128, 63, diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpritePixelShader.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpritePixelShader.inc index 078a85eabfb30ec9ade7713a6394ea0429dce81e..6446b5eb148d8aef335be71b20787dc502ad501b 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpritePixelShader.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpritePixelShader.inc @@ -28,12 +28,14 @@ // Level9 shader bytecode: // ps_2_0 - dcl t0 - dcl t1.xy + dcl t0 // color<0,1,2,3> + dcl t1.xy // texCoord<0,1> dcl_2d s0 + +#line 33 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SpriteEffect.fx" texld r0, t1, s0 - mul r0, r0, t0 - mov oC0, r0 + mul r0, r0, t0 // ::SpritePixelShader<0,1,2,3> + mov oC0, r0 // ::SpritePixelShader<0,1,2,3> // approximately 3 instruction slots used (1 texture, 2 arithmetic) ps_4_0 @@ -51,83 +53,152 @@ ret const BYTE SpriteEffect_SpritePixelShader[] = { - 68, 88, 66, 67, 194, 95, - 105, 234, 141, 247, 73, 209, - 137, 241, 142, 29, 26, 223, - 234, 193, 1, 0, 0, 0, - 216, 1, 0, 0, 4, 0, + 68, 88, 66, 67, 210, 231, + 76, 180, 17, 3, 192, 38, + 93, 177, 187, 117, 222, 165, + 188, 182, 1, 0, 0, 0, + 116, 3, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 184, 0, 0, 0, 84, 1, - 0, 0, 164, 1, 0, 0, - 65, 111, 110, 57, 128, 0, - 0, 0, 128, 0, 0, 0, - 0, 2, 255, 255, 88, 0, + 84, 2, 0, 0, 240, 2, + 0, 0, 64, 3, 0, 0, + 65, 111, 110, 57, 28, 2, + 0, 0, 28, 2, 0, 0, + 0, 2, 255, 255, 244, 1, 0, 0, 40, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 1, 0, 36, 0, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 228, 176, - 1, 0, 0, 2, 0, 8, + 0, 2, 255, 255, 254, 255, + 102, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 108, 1, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 6, 0, 0, 0, + 120, 0, 0, 0, 3, 0, + 0, 0, 48, 1, 0, 0, + 168, 0, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 112, + 114, 105, 116, 101, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 40, 0, 0, 0, + 0, 0, 255, 255, 160, 1, + 0, 0, 0, 0, 255, 255, + 172, 1, 0, 0, 0, 0, + 255, 255, 184, 1, 0, 0, + 33, 0, 0, 0, 196, 1, + 0, 0, 33, 0, 0, 0, + 212, 1, 0, 0, 33, 0, + 0, 0, 228, 1, 0, 0, + 83, 112, 114, 105, 116, 101, + 80, 105, 120, 101, 108, 83, + 104, 97, 100, 101, 114, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 5, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 99, 111, 108, 111, 114, 0, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 116, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 168, 0, 0, 0, + 188, 0, 0, 0, 2, 0, + 0, 0, 204, 0, 0, 0, + 168, 0, 0, 0, 228, 0, + 0, 0, 236, 0, 0, 0, + 1, 0, 0, 0, 252, 0, + 0, 0, 168, 0, 0, 0, + 8, 1, 0, 0, 20, 1, + 0, 0, 1, 0, 0, 0, + 36, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 1, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 148, 0, 0, 0, - 64, 0, 0, 0, 37, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 242, 16, + 0, 0, 228, 176, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 148, 0, 0, 0, 64, 0, + 0, 0, 37, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, + 85, 85, 0, 0, 98, 16, + 0, 3, 242, 16, 16, 0, + 0, 0, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 30, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 73, 83, - 71, 78, 72, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 15, - 0, 0, 62, 0, 0, 0, + 56, 0, 0, 7, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 73, 83, 71, 78, + 72, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 67, 79, 76, 79, 82, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 }; diff --git a/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc b/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc index 68e1db17df995ef0fd547c116a24d009fc538a43..fa065c57e754da5fe2f9c1c4fb9e043eba20d64d 100644 --- a/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc +++ b/Kits/DirectXTK/Src/Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc @@ -38,17 +38,19 @@ // Level9 shader bytecode: // vs_2_0 - dcl_texcoord v0 - dcl_texcoord1 v1 - dcl_texcoord2 v2 + dcl_texcoord v0 // color<0,1,2,3> + dcl_texcoord1 v1 // texCoord<0,1> + dcl_texcoord2 v2 // position<0,1,2,3> + +#line 26 "C:\ATG Sample Development\st_dev\Kits\DirectXTK\Src\Shaders\SpriteEffect.fx" mul r0, v2.y, c2 mad r0, v2.x, c1, r0 mad r0, v2.z, c3, r0 - mad r0, v2.w, c4, r0 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT0, v0 - mov oT1.xy, v1 + mad r0, v2.w, c4, r0 // position<0,1,2,3> + mad oPos.xy, r0.w, c0, r0 // position<0,1> + mov oPos.zw, r0 // position<2,3> + mov oT0, v0 // color<0,1,2,3> + mov oT1.xy, v1 // texCoord<0,1> // approximately 8 instruction slots used vs_4_0 @@ -72,17 +74,17 @@ ret const BYTE SpriteEffect_SpriteVertexShader[] = { - 68, 88, 66, 67, 53, 15, - 108, 68, 10, 30, 79, 231, - 153, 9, 61, 10, 198, 154, - 8, 125, 1, 0, 0, 0, - 60, 3, 0, 0, 4, 0, + 68, 88, 66, 67, 5, 73, + 202, 97, 204, 3, 14, 85, + 16, 11, 241, 197, 25, 93, + 20, 215, 1, 0, 0, 0, + 44, 5, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, - 28, 1, 0, 0, 84, 2, - 0, 0, 200, 2, 0, 0, - 65, 111, 110, 57, 228, 0, - 0, 0, 228, 0, 0, 0, - 0, 2, 254, 255, 176, 0, + 12, 3, 0, 0, 68, 4, + 0, 0, 184, 4, 0, 0, + 65, 111, 110, 57, 212, 2, + 0, 0, 212, 2, 0, 0, + 0, 2, 254, 255, 160, 2, 0, 0, 52, 0, 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, 48, 0, @@ -90,124 +92,207 @@ const BYTE SpriteEffect_SpriteVertexShader[] = 48, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 1, 128, - 1, 0, 15, 144, 31, 0, - 0, 2, 5, 0, 2, 128, - 2, 0, 15, 144, 5, 0, - 0, 3, 0, 0, 15, 128, - 2, 0, 85, 144, 2, 0, - 228, 160, 4, 0, 0, 4, + 0, 2, 254, 255, 254, 255, + 123, 0, 68, 66, 85, 71, + 40, 0, 0, 0, 192, 1, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 116, 0, + 0, 0, 11, 0, 0, 0, + 120, 0, 0, 0, 3, 0, + 0, 0, 132, 1, 0, 0, + 208, 0, 0, 0, 67, 58, + 92, 65, 84, 71, 32, 83, + 97, 109, 112, 108, 101, 32, + 68, 101, 118, 101, 108, 111, + 112, 109, 101, 110, 116, 92, + 115, 116, 95, 100, 101, 118, + 92, 75, 105, 116, 115, 92, + 68, 105, 114, 101, 99, 116, + 88, 84, 75, 92, 83, 114, + 99, 92, 83, 104, 97, 100, + 101, 114, 115, 92, 83, 112, + 114, 105, 116, 101, 69, 102, + 102, 101, 99, 116, 46, 102, + 120, 0, 40, 0, 0, 0, + 0, 0, 255, 255, 244, 1, + 0, 0, 0, 0, 255, 255, + 0, 2, 0, 0, 0, 0, + 255, 255, 12, 2, 0, 0, + 26, 0, 0, 0, 24, 2, + 0, 0, 26, 0, 0, 0, + 40, 2, 0, 0, 26, 0, + 0, 0, 60, 2, 0, 0, + 26, 0, 0, 0, 80, 2, + 0, 0, 24, 0, 0, 0, + 100, 2, 0, 0, 24, 0, + 0, 0, 120, 2, 0, 0, + 22, 0, 0, 0, 132, 2, + 0, 0, 23, 0, 0, 0, + 144, 2, 0, 0, 83, 112, + 114, 105, 116, 101, 86, 101, + 114, 116, 101, 120, 83, 104, + 97, 100, 101, 114, 0, 99, + 111, 108, 111, 114, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 9, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 112, 111, 115, 105, 116, 105, + 111, 110, 0, 171, 171, 171, + 2, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 6, 0, 0, 0, 0, 0, + 1, 0, 2, 0, 3, 0, + 7, 0, 0, 0, 0, 0, + 1, 0, 255, 255, 255, 255, + 8, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 3, 0, + 116, 101, 120, 67, 111, 111, + 114, 100, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, + 255, 255, 255, 255, 10, 0, + 0, 0, 0, 0, 1, 0, + 255, 255, 255, 255, 208, 0, + 0, 0, 227, 0, 0, 0, + 236, 0, 0, 0, 2, 0, + 0, 0, 252, 0, 0, 0, + 208, 0, 0, 0, 20, 1, + 0, 0, 236, 0, 0, 0, + 4, 0, 0, 0, 32, 1, + 0, 0, 208, 0, 0, 0, + 80, 1, 0, 0, 92, 1, + 0, 0, 2, 0, 0, 0, + 108, 1, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 49, 48, 46, + 49, 0, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 1, 128, 1, 0, + 15, 144, 31, 0, 0, 2, + 5, 0, 2, 128, 2, 0, + 15, 144, 5, 0, 0, 3, + 0, 0, 15, 128, 2, 0, + 85, 144, 2, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 15, 128, 2, 0, 0, 144, + 1, 0, 228, 160, 0, 0, + 228, 128, 4, 0, 0, 4, 0, 0, 15, 128, 2, 0, - 0, 144, 1, 0, 228, 160, + 170, 144, 3, 0, 228, 160, 0, 0, 228, 128, 4, 0, 0, 4, 0, 0, 15, 128, - 2, 0, 170, 144, 3, 0, + 2, 0, 255, 144, 4, 0, 228, 160, 0, 0, 228, 128, 4, 0, 0, 4, 0, 0, - 15, 128, 2, 0, 255, 144, - 4, 0, 228, 160, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 255, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 12, 192, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 15, 224, - 0, 0, 228, 144, 1, 0, - 0, 2, 1, 0, 3, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 48, 1, 0, 0, 64, 0, - 1, 0, 76, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 95, 0, - 0, 3, 242, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 54, 0, - 0, 5, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 30, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 50, 32, + 3, 192, 0, 0, 255, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 12, 192, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 15, 224, 0, 0, + 228, 144, 1, 0, 0, 2, + 1, 0, 3, 224, 1, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 48, 1, + 0, 0, 64, 0, 1, 0, + 76, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 95, 0, 0, 3, + 242, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 1, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 54, 0, 0, 5, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 30, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 86, 21, 16, 0, - 2, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 2, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 0, 0, 0, 0, + 86, 21, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, 0, 0, - 0, 0, 166, 26, 16, 0, + 0, 0, 6, 16, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 70, 14, + 0, 0, 0, 0, 70, 14, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 2, 0, 0, 0, - 246, 31, 16, 0, 2, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 166, 26, 16, 0, 2, 0, 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 73, 83, 71, 78, + 0, 0, 0, 0, 50, 0, + 0, 10, 242, 32, 16, 0, + 2, 0, 0, 0, 246, 31, + 16, 0, 2, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 73, 83, 71, 78, 108, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 15, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 95, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 15, 15, 0, 0, 67, 79, + 76, 79, 82, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 171, 79, 83, 71, 78, 108, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 0, 0, + 0, 0, 15, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, + 0, 0, 3, 12, 0, 0, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, - 0, 0, 15, 15, 0, 0, + 0, 0, 15, 0, 0, 0, 67, 79, 76, 79, 82, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, - 111, 110, 0, 171, 79, 83, - 71, 78, 108, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 12, - 0, 0, 95, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 15, 0, - 0, 0, 67, 79, 76, 79, - 82, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 171 + 111, 110, 0, 171 }; diff --git a/Kits/DirectXTK/Src/SpriteBatch.cpp b/Kits/DirectXTK/Src/SpriteBatch.cpp index e36b61c74ab00d928c88cfbe68651896596e0895..3fff6191ebe0327384b430275c7cc51aedbe49c1 100644 --- a/Kits/DirectXTK/Src/SpriteBatch.cpp +++ b/Kits/DirectXTK/Src/SpriteBatch.cpp @@ -13,9 +13,6 @@ #include "pch.h" -#include -#include - #include "SpriteBatch.h" #include "ConstantBuffer.h" #include "CommonStates.h" @@ -26,6 +23,43 @@ using namespace DirectX; using Microsoft::WRL::ComPtr; +namespace +{ + // Include the precompiled shader code. + #if defined(_XBOX_ONE) && defined(_TITLE) + #include "Shaders/Compiled/XboxOneSpriteEffect_SpriteVertexShader.inc" + #include "Shaders/Compiled/XboxOneSpriteEffect_SpritePixelShader.inc" + #else + #include "Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc" + #include "Shaders/Compiled/SpriteEffect_SpritePixelShader.inc" + #endif + + + // Helper looks up the D3D device corresponding to a context interface. + inline ComPtr GetDevice(_In_ ID3D11DeviceContext* deviceContext) + { + ComPtr device; + + deviceContext->GetDevice(&device); + + return device; + } + + + // Helper converts a RECT to XMVECTOR. + inline XMVECTOR LoadRect(_In_ RECT const* rect) + { + XMVECTOR v = XMLoadInt4(reinterpret_cast(rect)); + + v = XMConvertVectorIntToFloat(v, 0); + + // Convert right/bottom to width/height. + v -= XMVectorPermute<0, 1, 4, 5>(XMVectorZero(), v); + + return v; + } +} + // Internal SpriteBatch implementation class. __declspec(align(16)) class SpriteBatch::Impl : public AlignedNew @@ -33,10 +67,21 @@ __declspec(align(16)) class SpriteBatch::Impl : public AlignedNew setCustomShaders, FXMMATRIX transformMatrix); + void XM_CALLCONV Begin(SpriteSortMode sortMode, + _In_opt_ ID3D11BlendState* blendState, + _In_opt_ ID3D11SamplerState* samplerState, + _In_opt_ ID3D11DepthStencilState* depthStencilState, + _In_opt_ ID3D11RasterizerState* rasterizerState, + _In_opt_ std::function setCustomShaders, + FXMMATRIX transformMatrix); void End(); - void XM_CALLCONV Draw(_In_ ID3D11ShaderResourceView* texture, FXMVECTOR destination, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, FXMVECTOR originRotationDepth, int flags); + void XM_CALLCONV Draw(_In_ ID3D11ShaderResourceView* texture, + FXMVECTOR destination, + _In_opt_ RECT const* sourceRectangle, + FXMVECTOR color, + FXMVECTOR originRotationDepth, + int flags); // Info about a single sprite that is waiting to be drawn. @@ -72,7 +117,10 @@ private: void RenderBatch(_In_ ID3D11ShaderResourceView* texture, _In_reads_(count) SpriteInfo const* const* sprites, size_t count); - static void XM_CALLCONV RenderSprite(_In_ SpriteInfo const* sprite, _Out_cap_c_(VerticesPerSprite) VertexPositionColorTexture* vertices, FXMVECTOR textureSize, FXMVECTOR inverseTextureSize); + static void XM_CALLCONV RenderSprite(_In_ SpriteInfo const* sprite, + _Out_writes_(VerticesPerSprite) VertexPositionColorTexture* vertices, + FXMVECTOR textureSize, + FXMVECTOR inverseTextureSize); static XMVECTOR GetTextureSize(_In_ ID3D11ShaderResourceView* texture); XMMATRIX GetViewportTransform(_In_ ID3D11DeviceContext* deviceContext, DXGI_MODE_ROTATION rotation ); @@ -180,45 +228,6 @@ SharedResourcePool Sp const XMMATRIX SpriteBatch::MatrixIdentity = XMMatrixIdentity(); const XMFLOAT2 SpriteBatch::Float2Zero(0, 0); - -namespace -{ - // Include the precompiled shader code. -#if defined(_XBOX_ONE) && defined(_TITLE) - #include "Shaders/Compiled/XboxOneSpriteEffect_SpriteVertexShader.inc" - #include "Shaders/Compiled/XboxOneSpriteEffect_SpritePixelShader.inc" -#else - #include "Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc" - #include "Shaders/Compiled/SpriteEffect_SpritePixelShader.inc" -#endif - - - // Helper looks up the D3D device corresponding to a context interface. - inline ComPtr GetDevice(_In_ ID3D11DeviceContext* deviceContext) - { - ComPtr device; - - deviceContext->GetDevice(&device); - - return device; - } - - - // Helper converts a RECT to XMVECTOR. - inline XMVECTOR LoadRect(_In_ RECT const* rect) - { - XMVECTOR v = XMLoadInt4(reinterpret_cast(rect)); - - v = XMConvertVectorIntToFloat(v, 0); - - // Convert right/bottom to width/height. - v -= XMVectorPermute<0, 1, 4, 5>(XMVectorZero(), v); - - return v; - } -} - - // Per-device constructor. SpriteBatch::Impl::DeviceResources::DeviceResources(_In_ ID3D11Device* device) : stateObjects(device) @@ -262,7 +271,7 @@ void SpriteBatch::Impl::DeviceResources::CreateShaders(_In_ ID3D11Device* device // Creates the SpriteBatch index buffer. void SpriteBatch::Impl::DeviceResources::CreateIndexBuffer(_In_ ID3D11Device* device) { - D3D11_BUFFER_DESC indexBufferDesc = { 0 }; + D3D11_BUFFER_DESC indexBufferDesc = {}; static_assert( ( MaxBatchSize * VerticesPerSprite ) < USHRT_MAX, "MaxBatchSize too large for 16-bit indices" ); @@ -272,7 +281,7 @@ void SpriteBatch::Impl::DeviceResources::CreateIndexBuffer(_In_ ID3D11Device* de auto indexValues = CreateIndexValues(); - D3D11_SUBRESOURCE_DATA indexDataDesc = { 0 }; + D3D11_SUBRESOURCE_DATA indexDataDesc = {}; indexDataDesc.pSysMem = indexValues.data(); @@ -326,7 +335,7 @@ SpriteBatch::Impl::ContextResources::ContextResources(_In_ ID3D11DeviceContext* void SpriteBatch::Impl::ContextResources::CreateVertexBuffer() { #if defined(_XBOX_ONE) && defined(_TITLE) - D3D11_BUFFER_DESC vertexBufferDesc = { 0 }; + D3D11_BUFFER_DESC vertexBufferDesc = {}; vertexBufferDesc.ByteWidth = sizeof(VertexPositionColorTexture) * MaxBatchSize * VerticesPerSprite; vertexBufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; @@ -344,7 +353,7 @@ void SpriteBatch::Impl::ContextResources::CreateVertexBuffer() SetDebugObjectName(vertexBuffer.Get(), "DirectXTK:SpriteBatch"); #else - D3D11_BUFFER_DESC vertexBufferDesc = { 0 }; + D3D11_BUFFER_DESC vertexBufferDesc = {}; vertexBufferDesc.ByteWidth = sizeof(VertexPositionColorTexture) * MaxBatchSize * VerticesPerSprite; vertexBufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; @@ -376,7 +385,14 @@ SpriteBatch::Impl::Impl(_In_ ID3D11DeviceContext* deviceContext) // Begins a batch of sprite drawing operations. -void XM_CALLCONV SpriteBatch::Impl::Begin(SpriteSortMode sortMode, _In_opt_ ID3D11BlendState* blendState, _In_opt_ ID3D11SamplerState* samplerState, _In_opt_ ID3D11DepthStencilState* depthStencilState, _In_opt_ ID3D11RasterizerState* rasterizerState, _In_opt_ std::function setCustomShaders, FXMMATRIX transformMatrix) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Impl::Begin(SpriteSortMode sortMode, + ID3D11BlendState* blendState, + ID3D11SamplerState* samplerState, + ID3D11DepthStencilState* depthStencilState, + ID3D11RasterizerState* rasterizerState, + std::function setCustomShaders, + FXMMATRIX transformMatrix) { if (mInBeginEndPair) throw std::exception("Cannot nest Begin calls on a single SpriteBatch"); @@ -434,7 +450,13 @@ void SpriteBatch::Impl::End() // Adds a single sprite to the queue. -void XM_CALLCONV SpriteBatch::Impl::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVECTOR destination, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, FXMVECTOR originRotationDepth, int flags) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Impl::Draw(ID3D11ShaderResourceView* texture, + FXMVECTOR destination, + RECT const* sourceRectangle, + FXMVECTOR color, + FXMVECTOR originRotationDepth, + int flags) { if (!texture) throw std::exception("Texture cannot be null"); @@ -695,7 +717,8 @@ void SpriteBatch::Impl::GrowSortedSprites() // Submits a batch of sprites to the GPU. -void SpriteBatch::Impl::RenderBatch(_In_ ID3D11ShaderResourceView* texture, _In_reads_(count) SpriteInfo const* const* sprites, size_t count) +_Use_decl_annotations_ +void SpriteBatch::Impl::RenderBatch(ID3D11ShaderResourceView* texture, SpriteInfo const* const* sprites, size_t count) { auto deviceContext = mContextResources->deviceContext.Get(); @@ -780,7 +803,11 @@ void SpriteBatch::Impl::RenderBatch(_In_ ID3D11ShaderResourceView* texture, _In_ // Generates vertex data for drawing a single sprite. -void XM_CALLCONV SpriteBatch::Impl::RenderSprite(_In_ SpriteInfo const* sprite, _Out_cap_c_(VerticesPerSprite) VertexPositionColorTexture* vertices, FXMVECTOR textureSize, FXMVECTOR inverseTextureSize) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Impl::RenderSprite(SpriteInfo const* sprite, + VertexPositionColorTexture* vertices, + FXMVECTOR textureSize, + FXMVECTOR inverseTextureSize) { // Load sprite parameters into SIMD registers. XMVECTOR source = XMLoadFloat4A(&sprite->source); @@ -1006,7 +1033,14 @@ SpriteBatch::~SpriteBatch() } -void XM_CALLCONV SpriteBatch::Begin(SpriteSortMode sortMode, _In_opt_ ID3D11BlendState* blendState, _In_opt_ ID3D11SamplerState* samplerState, _In_opt_ ID3D11DepthStencilState* depthStencilState, _In_opt_ ID3D11RasterizerState* rasterizerState, _In_opt_ std::function setCustomShaders, FXMMATRIX transformMatrix) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Begin(SpriteSortMode sortMode, + ID3D11BlendState* blendState, + ID3D11SamplerState* samplerState, + ID3D11DepthStencilState* depthStencilState, + ID3D11RasterizerState* rasterizerState, + std::function setCustomShaders, + FXMMATRIX transformMatrix) { pImpl->Begin(sortMode, blendState, samplerState, depthStencilState, rasterizerState, setCustomShaders, transformMatrix); } @@ -1018,7 +1052,8 @@ void SpriteBatch::End() } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, XMFLOAT2 const& position, FXMVECTOR color) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, XMFLOAT2 const& position, FXMVECTOR color) { XMVECTOR destination = XMVectorPermute<0, 1, 4, 5>(XMLoadFloat2(&position), g_XMOne); // x, y, 1, 1 @@ -1026,7 +1061,16 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, XMFLO } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, XMFLOAT2 const& position, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, float rotation, XMFLOAT2 const& origin, float scale, SpriteEffects effects, float layerDepth) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, + XMFLOAT2 const& position, + RECT const* sourceRectangle, + FXMVECTOR color, + float rotation, + XMFLOAT2 const& origin, + float scale, + SpriteEffects effects, + float layerDepth) { XMVECTOR destination = XMVectorPermute<0, 1, 4, 4>(XMLoadFloat2(&position), XMLoadFloat(&scale)); // x, y, scale, scale @@ -1036,7 +1080,16 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, XMFLO } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, XMFLOAT2 const& position, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, float rotation, XMFLOAT2 const& origin, XMFLOAT2 const& scale, SpriteEffects effects, float layerDepth) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, + XMFLOAT2 const& position, + RECT const* sourceRectangle, + FXMVECTOR color, + float rotation, + XMFLOAT2 const& origin, + XMFLOAT2 const& scale, + SpriteEffects effects, + float layerDepth) { XMVECTOR destination = XMVectorPermute<0, 1, 4, 5>(XMLoadFloat2(&position), XMLoadFloat2(&scale)); // x, y, scale.x, scale.y @@ -1046,7 +1099,8 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, XMFLO } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVECTOR position, FXMVECTOR color) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, FXMVECTOR position, FXMVECTOR color) { XMVECTOR destination = XMVectorPermute<0, 1, 4, 5>(position, g_XMOne); // x, y, 1, 1 @@ -1054,7 +1108,16 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVE } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVECTOR position, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, float rotation, FXMVECTOR origin, float scale, SpriteEffects effects, float layerDepth) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, + FXMVECTOR position, + RECT const* sourceRectangle, + FXMVECTOR color, + float rotation, + FXMVECTOR origin, + float scale, + SpriteEffects effects, + float layerDepth) { XMVECTOR destination = XMVectorPermute<0, 1, 4, 4>(position, XMLoadFloat(&scale)); // x, y, scale, scale @@ -1066,7 +1129,16 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVE } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVECTOR position, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, float rotation, FXMVECTOR origin, GXMVECTOR scale, SpriteEffects effects, float layerDepth) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, + FXMVECTOR position, + RECT const* sourceRectangle, + FXMVECTOR color, + float rotation, + FXMVECTOR origin, + GXMVECTOR scale, + SpriteEffects effects, + float layerDepth) { XMVECTOR destination = XMVectorPermute<0, 1, 4, 5>(position, scale); // x, y, scale.x, scale.y @@ -1078,7 +1150,8 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, FXMVE } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, RECT const& destinationRectangle, FXMVECTOR color) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, RECT const& destinationRectangle, FXMVECTOR color) { XMVECTOR destination = LoadRect(&destinationRectangle); // x, y, w, h @@ -1086,7 +1159,15 @@ void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, RECT } -void XM_CALLCONV SpriteBatch::Draw(_In_ ID3D11ShaderResourceView* texture, RECT const& destinationRectangle, _In_opt_ RECT const* sourceRectangle, FXMVECTOR color, float rotation, XMFLOAT2 const& origin, SpriteEffects effects, float layerDepth) +_Use_decl_annotations_ +void XM_CALLCONV SpriteBatch::Draw(ID3D11ShaderResourceView* texture, + RECT const& destinationRectangle, + RECT const* sourceRectangle, + FXMVECTOR color, + float rotation, + XMFLOAT2 const& origin, + SpriteEffects effects, + float layerDepth) { XMVECTOR destination = LoadRect(&destinationRectangle); // x, y, w, h diff --git a/Kits/DirectXTK/Src/SpriteFont.cpp b/Kits/DirectXTK/Src/SpriteFont.cpp index a6dd8aa95e25cffaee0129eb3c8ac2141c643a53..c938cd48f5670ed8ca108565dfc7507822e3140f 100644 --- a/Kits/DirectXTK/Src/SpriteFont.cpp +++ b/Kits/DirectXTK/Src/SpriteFont.cpp @@ -125,7 +125,8 @@ SpriteFont::Impl::Impl(_In_ ID3D11Device* device, _In_ BinaryReader* reader) // Constructs a SpriteFont from arbitrary user specified glyph data. -SpriteFont::Impl::Impl(_In_ ID3D11ShaderResourceView* texture, _In_reads_(glyphCount) Glyph const* glyphs, _In_ size_t glyphCount, _In_ float lineSpacing) +_Use_decl_annotations_ +SpriteFont::Impl::Impl(ID3D11ShaderResourceView* texture, Glyph const* glyphs, size_t glyphCount, float lineSpacing) : texture(texture), glyphs(glyphs, glyphs + glyphCount), lineSpacing(lineSpacing), @@ -226,7 +227,8 @@ SpriteFont::SpriteFont(_In_ ID3D11Device* device, _In_z_ wchar_t const* fileName // Construct from a binary blob created by the MakeSpriteFont utility and already loaded into memory. -SpriteFont::SpriteFont(_In_ ID3D11Device* device, _In_reads_bytes_(dataSize) uint8_t const* dataBlob, _In_ size_t dataSize) +_Use_decl_annotations_ +SpriteFont::SpriteFont(ID3D11Device* device, uint8_t const* dataBlob, size_t dataSize) { BinaryReader reader(dataBlob, dataSize); @@ -235,7 +237,8 @@ SpriteFont::SpriteFont(_In_ ID3D11Device* device, _In_reads_bytes_(dataSize) uin // Construct from arbitrary user specified glyph data (for those not using the MakeSpriteFont utility). -SpriteFont::SpriteFont(_In_ ID3D11ShaderResourceView* texture, _In_reads_(glyphCount) Glyph const* glyphs, _In_ size_t glyphCount, _In_ float lineSpacing) +_Use_decl_annotations_ +SpriteFont::SpriteFont(ID3D11ShaderResourceView* texture, Glyph const* glyphs, size_t glyphCount, float lineSpacing) : pImpl(new Impl(texture, glyphs, glyphCount, lineSpacing)) { } diff --git a/Kits/DirectXTK/Src/VertexTypes.cpp b/Kits/DirectXTK/Src/VertexTypes.cpp index 576780bc48d57a479a81d582abafeb6ec2c4ce86..1dbf5c83bddcfc3db0598378704a0f5541db3cb7 100644 --- a/Kits/DirectXTK/Src/VertexTypes.cpp +++ b/Kits/DirectXTK/Src/VertexTypes.cpp @@ -20,6 +20,16 @@ using namespace DirectX; using namespace DirectX::PackedVector; +//-------------------------------------------------------------------------------------- +// Vertex struct holding position . +const D3D11_INPUT_ELEMENT_DESC VertexPosition::InputElements[] = +{ + { "SV_Position", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, +}; + +static_assert(sizeof(VertexPosition) == 12, "Vertex struct/layout mismatch"); + + //-------------------------------------------------------------------------------------- // Vertex struct holding position and color information. const D3D11_INPUT_ELEMENT_DESC VertexPositionColor::InputElements[] = @@ -42,6 +52,18 @@ const D3D11_INPUT_ELEMENT_DESC VertexPositionTexture::InputElements[] = static_assert( sizeof(VertexPositionTexture) == 20, "Vertex struct/layout mismatch" ); +//-------------------------------------------------------------------------------------- +// Vertex struct holding position and dual texture mapping information. +const D3D11_INPUT_ELEMENT_DESC VertexPositionDualTexture::InputElements[] = +{ + { "SV_Position", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 1, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, +}; + +static_assert(sizeof(VertexPositionDualTexture) == 28, "Vertex struct/layout mismatch"); + + //-------------------------------------------------------------------------------------- // Vertex struct holding position and normal vector. const D3D11_INPUT_ELEMENT_DESC VertexPositionNormal::InputElements[] = diff --git a/Kits/DirectXTK/Src/WICTextureLoader.cpp b/Kits/DirectXTK/Src/WICTextureLoader.cpp index f608317f6e49f66a122071c1e6dc3339d0e6936a..5a954522049ad9aeffd155acf08d4742250d4c4c 100644 --- a/Kits/DirectXTK/Src/WICTextureLoader.cpp +++ b/Kits/DirectXTK/Src/WICTextureLoader.cpp @@ -1,7 +1,7 @@ //-------------------------------------------------------------------------------------- // File: WICTextureLoader.cpp // -// Function for loading a WIC image and creating a Direct3D 11 runtime texture for it +// Function for loading a WIC image and creating a Direct3D runtime texture for it // (auto-generating mipmaps if possible) // // Note: Assumes application has already called CoInitializeEx @@ -40,292 +40,294 @@ using namespace DirectX; using Microsoft::WRL::ComPtr; -//------------------------------------------------------------------------------------- -// WIC Pixel Format Translation Data -//------------------------------------------------------------------------------------- -struct WICTranslate +namespace { - GUID wic; - DXGI_FORMAT format; -}; + //------------------------------------------------------------------------------------- + // WIC Pixel Format Translation Data + //------------------------------------------------------------------------------------- + struct WICTranslate + { + GUID wic; + DXGI_FORMAT format; + }; -static WICTranslate g_WICFormats[] = -{ - { GUID_WICPixelFormat128bppRGBAFloat, DXGI_FORMAT_R32G32B32A32_FLOAT }, + WICTranslate g_WICFormats[] = + { + { GUID_WICPixelFormat128bppRGBAFloat, DXGI_FORMAT_R32G32B32A32_FLOAT }, - { GUID_WICPixelFormat64bppRGBAHalf, DXGI_FORMAT_R16G16B16A16_FLOAT }, - { GUID_WICPixelFormat64bppRGBA, DXGI_FORMAT_R16G16B16A16_UNORM }, + { GUID_WICPixelFormat64bppRGBAHalf, DXGI_FORMAT_R16G16B16A16_FLOAT }, + { GUID_WICPixelFormat64bppRGBA, DXGI_FORMAT_R16G16B16A16_UNORM }, - { GUID_WICPixelFormat32bppRGBA, DXGI_FORMAT_R8G8B8A8_UNORM }, - { GUID_WICPixelFormat32bppBGRA, DXGI_FORMAT_B8G8R8A8_UNORM }, // DXGI 1.1 - { GUID_WICPixelFormat32bppBGR, DXGI_FORMAT_B8G8R8X8_UNORM }, // DXGI 1.1 + { GUID_WICPixelFormat32bppRGBA, DXGI_FORMAT_R8G8B8A8_UNORM }, + { GUID_WICPixelFormat32bppBGRA, DXGI_FORMAT_B8G8R8A8_UNORM }, // DXGI 1.1 + { GUID_WICPixelFormat32bppBGR, DXGI_FORMAT_B8G8R8X8_UNORM }, // DXGI 1.1 - { GUID_WICPixelFormat32bppRGBA1010102XR, DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM }, // DXGI 1.1 - { GUID_WICPixelFormat32bppRGBA1010102, DXGI_FORMAT_R10G10B10A2_UNORM }, + { GUID_WICPixelFormat32bppRGBA1010102XR, DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM }, // DXGI 1.1 + { GUID_WICPixelFormat32bppRGBA1010102, DXGI_FORMAT_R10G10B10A2_UNORM }, - { GUID_WICPixelFormat16bppBGRA5551, DXGI_FORMAT_B5G5R5A1_UNORM }, - { GUID_WICPixelFormat16bppBGR565, DXGI_FORMAT_B5G6R5_UNORM }, + { GUID_WICPixelFormat16bppBGRA5551, DXGI_FORMAT_B5G5R5A1_UNORM }, + { GUID_WICPixelFormat16bppBGR565, DXGI_FORMAT_B5G6R5_UNORM }, - { GUID_WICPixelFormat32bppGrayFloat, DXGI_FORMAT_R32_FLOAT }, - { GUID_WICPixelFormat16bppGrayHalf, DXGI_FORMAT_R16_FLOAT }, - { GUID_WICPixelFormat16bppGray, DXGI_FORMAT_R16_UNORM }, - { GUID_WICPixelFormat8bppGray, DXGI_FORMAT_R8_UNORM }, + { GUID_WICPixelFormat32bppGrayFloat, DXGI_FORMAT_R32_FLOAT }, + { GUID_WICPixelFormat16bppGrayHalf, DXGI_FORMAT_R16_FLOAT }, + { GUID_WICPixelFormat16bppGray, DXGI_FORMAT_R16_UNORM }, + { GUID_WICPixelFormat8bppGray, DXGI_FORMAT_R8_UNORM }, - { GUID_WICPixelFormat8bppAlpha, DXGI_FORMAT_A8_UNORM }, -}; + { GUID_WICPixelFormat8bppAlpha, DXGI_FORMAT_A8_UNORM }, + }; -//------------------------------------------------------------------------------------- -// WIC Pixel Format nearest conversion table -//------------------------------------------------------------------------------------- + //------------------------------------------------------------------------------------- + // WIC Pixel Format nearest conversion table + //------------------------------------------------------------------------------------- + struct WICConvert + { + GUID source; + GUID target; + }; -struct WICConvert -{ - GUID source; - GUID target; -}; + WICConvert g_WICConvert[] = + { + // Note target GUID in this conversion table must be one of those directly supported formats (above). -static WICConvert g_WICConvert[] = -{ - // Note target GUID in this conversion table must be one of those directly supported formats (above). + { GUID_WICPixelFormatBlackWhite, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM - { GUID_WICPixelFormatBlackWhite, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM + { GUID_WICPixelFormat1bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat2bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat4bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat8bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat1bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat2bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat4bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat8bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat2bppGray, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM + { GUID_WICPixelFormat4bppGray, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM - { GUID_WICPixelFormat2bppGray, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM - { GUID_WICPixelFormat4bppGray, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM + { GUID_WICPixelFormat16bppGrayFixedPoint, GUID_WICPixelFormat16bppGrayHalf }, // DXGI_FORMAT_R16_FLOAT + { GUID_WICPixelFormat32bppGrayFixedPoint, GUID_WICPixelFormat32bppGrayFloat }, // DXGI_FORMAT_R32_FLOAT - { GUID_WICPixelFormat16bppGrayFixedPoint, GUID_WICPixelFormat16bppGrayHalf }, // DXGI_FORMAT_R16_FLOAT - { GUID_WICPixelFormat32bppGrayFixedPoint, GUID_WICPixelFormat32bppGrayFloat }, // DXGI_FORMAT_R32_FLOAT + { GUID_WICPixelFormat16bppBGR555, GUID_WICPixelFormat16bppBGRA5551 }, // DXGI_FORMAT_B5G5R5A1_UNORM - { GUID_WICPixelFormat16bppBGR555, GUID_WICPixelFormat16bppBGRA5551 }, // DXGI_FORMAT_B5G5R5A1_UNORM + { GUID_WICPixelFormat32bppBGR101010, GUID_WICPixelFormat32bppRGBA1010102 }, // DXGI_FORMAT_R10G10B10A2_UNORM - { GUID_WICPixelFormat32bppBGR101010, GUID_WICPixelFormat32bppRGBA1010102 }, // DXGI_FORMAT_R10G10B10A2_UNORM + { GUID_WICPixelFormat24bppBGR, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat24bppRGB, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat32bppPBGRA, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat32bppPRGBA, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat24bppBGR, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat24bppRGB, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat32bppPBGRA, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat32bppPRGBA, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat48bppRGB, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat48bppBGR, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat64bppBGRA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat64bppPRGBA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat64bppPBGRA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat48bppRGB, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat48bppBGR, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat64bppBGRA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat64bppPRGBA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat64bppPBGRA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat48bppRGBFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat48bppBGRFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat64bppRGBAFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat64bppBGRAFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat64bppRGBFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat64bppRGBHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat48bppRGBHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat48bppRGBFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat48bppBGRFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat64bppRGBAFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat64bppBGRAFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat64bppRGBFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat64bppRGBHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT - { GUID_WICPixelFormat48bppRGBHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + { GUID_WICPixelFormat128bppPRGBAFloat, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT + { GUID_WICPixelFormat128bppRGBFloat, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT + { GUID_WICPixelFormat128bppRGBAFixedPoint, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT + { GUID_WICPixelFormat128bppRGBFixedPoint, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT + { GUID_WICPixelFormat32bppRGBE, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT - { GUID_WICPixelFormat128bppPRGBAFloat, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT - { GUID_WICPixelFormat128bppRGBFloat, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT - { GUID_WICPixelFormat128bppRGBAFixedPoint, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT - { GUID_WICPixelFormat128bppRGBFixedPoint, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT - { GUID_WICPixelFormat32bppRGBE, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT + { GUID_WICPixelFormat32bppCMYK, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat64bppCMYK, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat40bppCMYKAlpha, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat80bppCMYKAlpha, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat32bppCMYK, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat64bppCMYK, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat40bppCMYKAlpha, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat80bppCMYKAlpha, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) + { GUID_WICPixelFormat32bppRGB, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM + { GUID_WICPixelFormat64bppRGB, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM + { GUID_WICPixelFormat64bppPRGBAHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT + #endif -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) - { GUID_WICPixelFormat32bppRGB, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM - { GUID_WICPixelFormat64bppRGB, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM - { GUID_WICPixelFormat64bppPRGBAHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT -#endif + // We don't support n-channel formats + }; - // We don't support n-channel formats -}; - -static bool g_WIC2 = false; + bool g_WIC2 = false; +} //-------------------------------------------------------------------------------------- namespace DirectX { -bool _IsWIC2() -{ - return g_WIC2; -} + bool _IsWIC2() + { + return g_WIC2; + } -IWICImagingFactory* _GetWIC() -{ - static IWICImagingFactory* s_Factory = nullptr; + IWICImagingFactory* _GetWIC() + { + static IWICImagingFactory* s_Factory = nullptr; - if ( s_Factory ) - return s_Factory; + if (s_Factory) + return s_Factory; #if(_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) - HRESULT hr = CoCreateInstance( - CLSID_WICImagingFactory2, - nullptr, - CLSCTX_INPROC_SERVER, - __uuidof(IWICImagingFactory2), - (LPVOID*)&s_Factory + HRESULT hr = CoCreateInstance( + CLSID_WICImagingFactory2, + nullptr, + CLSCTX_INPROC_SERVER, + __uuidof(IWICImagingFactory2), + (LPVOID*)&s_Factory ); - if ( SUCCEEDED(hr) ) - { - // WIC2 is available on Windows 8 and Windows 7 SP1 with KB 2670838 installed - g_WIC2 = true; - } - else - { - hr = CoCreateInstance( - CLSID_WICImagingFactory1, + if (SUCCEEDED(hr)) + { + // WIC2 is available on Windows 8 and Windows 7 SP1 with KB 2670838 installed + g_WIC2 = true; + } + else + { + hr = CoCreateInstance( + CLSID_WICImagingFactory1, + nullptr, + CLSCTX_INPROC_SERVER, + IID_PPV_ARGS(&s_Factory) + ); + + if (FAILED(hr)) + { + s_Factory = nullptr; + return nullptr; + } + } +#else + HRESULT hr = CoCreateInstance( + CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&s_Factory) - ); + ); - if ( FAILED(hr) ) + if (FAILED(hr)) { s_Factory = nullptr; return nullptr; } - } -#else - HRESULT hr = CoCreateInstance( - CLSID_WICImagingFactory, - nullptr, - CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory) - ); - - if ( FAILED(hr) ) - { - s_Factory = nullptr; - return nullptr; - } #endif - return s_Factory; -} + return s_Factory; + } } // namespace DirectX -//--------------------------------------------------------------------------------- -static DXGI_FORMAT _WICToDXGI( const GUID& guid ) +namespace { - for( size_t i=0; i < _countof(g_WICFormats); ++i ) + //--------------------------------------------------------------------------------- + DXGI_FORMAT _WICToDXGI(const GUID& guid) { - if ( memcmp( &g_WICFormats[i].wic, &guid, sizeof(GUID) ) == 0 ) - return g_WICFormats[i].format; - } + for (size_t i = 0; i < _countof(g_WICFormats); ++i) + { + if (memcmp(&g_WICFormats[i].wic, &guid, sizeof(GUID)) == 0) + return g_WICFormats[i].format; + } #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) - if ( g_WIC2 ) - { - if ( memcmp( &GUID_WICPixelFormat96bppRGBFloat, &guid, sizeof(GUID) ) == 0 ) - return DXGI_FORMAT_R32G32B32_FLOAT; - } + if (g_WIC2) + { + if (memcmp(&GUID_WICPixelFormat96bppRGBFloat, &guid, sizeof(GUID)) == 0) + return DXGI_FORMAT_R32G32B32_FLOAT; + } #endif - return DXGI_FORMAT_UNKNOWN; -} + return DXGI_FORMAT_UNKNOWN; + } -//--------------------------------------------------------------------------------- -static size_t _WICBitsPerPixel( REFGUID targetGuid ) -{ - IWICImagingFactory* pWIC = _GetWIC(); - if ( !pWIC ) - return 0; - - ComPtr cinfo; - if ( FAILED( pWIC->CreateComponentInfo( targetGuid, cinfo.GetAddressOf() ) ) ) - return 0; + //--------------------------------------------------------------------------------- + size_t _WICBitsPerPixel(REFGUID targetGuid) + { + auto pWIC = _GetWIC(); + if (!pWIC) + return 0; - WICComponentType type; - if ( FAILED( cinfo->GetComponentType( &type ) ) ) - return 0; + ComPtr cinfo; + if (FAILED(pWIC->CreateComponentInfo(targetGuid, cinfo.GetAddressOf()))) + return 0; - if ( type != WICPixelFormat ) - return 0; + WICComponentType type; + if (FAILED(cinfo->GetComponentType(&type))) + return 0; - ComPtr pfinfo; - if ( FAILED( cinfo.As( &pfinfo ) ) ) - return 0; + if (type != WICPixelFormat) + return 0; - UINT bpp; - if ( FAILED( pfinfo->GetBitsPerPixel( &bpp ) ) ) - return 0; + ComPtr pfinfo; + if (FAILED(cinfo.As(&pfinfo))) + return 0; - return bpp; -} + UINT bpp; + if (FAILED(pfinfo->GetBitsPerPixel(&bpp))) + return 0; + return bpp; + } -//-------------------------------------------------------------------------------------- -static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format ) -{ - switch( format ) + //-------------------------------------------------------------------------------------- + DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) { - case DXGI_FORMAT_R8G8B8A8_UNORM: - return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; + switch (format) + { + case DXGI_FORMAT_R8G8B8A8_UNORM: + return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; - case DXGI_FORMAT_BC1_UNORM: - return DXGI_FORMAT_BC1_UNORM_SRGB; + case DXGI_FORMAT_BC1_UNORM: + return DXGI_FORMAT_BC1_UNORM_SRGB; - case DXGI_FORMAT_BC2_UNORM: - return DXGI_FORMAT_BC2_UNORM_SRGB; + case DXGI_FORMAT_BC2_UNORM: + return DXGI_FORMAT_BC2_UNORM_SRGB; - case DXGI_FORMAT_BC3_UNORM: - return DXGI_FORMAT_BC3_UNORM_SRGB; + case DXGI_FORMAT_BC3_UNORM: + return DXGI_FORMAT_BC3_UNORM_SRGB; - case DXGI_FORMAT_B8G8R8A8_UNORM: - return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; + case DXGI_FORMAT_B8G8R8A8_UNORM: + return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; - case DXGI_FORMAT_B8G8R8X8_UNORM: - return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB; + case DXGI_FORMAT_B8G8R8X8_UNORM: + return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB; - case DXGI_FORMAT_BC7_UNORM: - return DXGI_FORMAT_BC7_UNORM_SRGB; + case DXGI_FORMAT_BC7_UNORM: + return DXGI_FORMAT_BC7_UNORM_SRGB; - default: - return format; + default: + return format; + } } -} - -//--------------------------------------------------------------------------------- -static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice, - _In_opt_ ID3D11DeviceContext* d3dContext, + //--------------------------------------------------------------------------------- + HRESULT CreateTextureFromWIC(_In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, #if defined(_XBOX_ONE) && defined(_TITLE) - _In_opt_ ID3D11DeviceX* d3dDeviceX, - _In_opt_ ID3D11DeviceContextX* d3dContextX, + _In_opt_ ID3D11DeviceX* d3dDeviceX, + _In_opt_ ID3D11DeviceContextX* d3dContextX, #endif - _In_ IWICBitmapFrameDecode *frame, - _In_ size_t maxsize, - _In_ D3D11_USAGE usage, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, - _In_ bool forceSRGB, - _Out_opt_ ID3D11Resource** texture, - _Out_opt_ ID3D11ShaderResourceView** textureView ) -{ - UINT width, height; - HRESULT hr = frame->GetSize( &width, &height ); - if ( FAILED(hr) ) - return hr; - - assert( width > 0 && height > 0 ); - - if ( !maxsize ) + _In_ IWICBitmapFrameDecode *frame, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, + _In_ unsigned int bindFlags, + _In_ unsigned int cpuAccessFlags, + _In_ unsigned int miscFlags, + _In_ bool forceSRGB, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView) { - // This is a bit conservative because the hardware could support larger textures than - // the Feature Level defined minimums, but doing it this way is much easier and more - // performant for WIC than the 'fail and retry' model used by DDSTextureLoader + UINT width, height; + HRESULT hr = frame->GetSize(&width, &height); + if (FAILED(hr)) + return hr; - switch( d3dDevice->GetFeatureLevel() ) + assert(width > 0 && height > 0); + + if (!maxsize) { + // This is a bit conservative because the hardware could support larger textures than + // the Feature Level defined minimums, but doing it this way is much easier and more + // performant for WIC than the 'fail and retry' model used by DDSTextureLoader + + switch (d3dDevice->GetFeatureLevel()) + { case D3D_FEATURE_LEVEL_9_1: case D3D_FEATURE_LEVEL_9_2: maxsize = 2048 /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; @@ -343,375 +345,375 @@ static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice, default: maxsize = D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; break; + } } - } - assert( maxsize > 0 ); + assert(maxsize > 0); - UINT twidth, theight; - if ( width > maxsize || height > maxsize ) - { - float ar = static_cast(height) / static_cast(width); - if ( width > height ) + UINT twidth, theight; + if (width > maxsize || height > maxsize) { - twidth = static_cast( maxsize ); - theight = static_cast( static_cast(maxsize) * ar ); + float ar = static_cast(height) / static_cast(width); + if (width > height) + { + twidth = static_cast(maxsize); + theight = static_cast(static_cast(maxsize) * ar); + } + else + { + theight = static_cast(maxsize); + twidth = static_cast(static_cast(maxsize) / ar); + } + assert(twidth <= maxsize && theight <= maxsize); } else { - theight = static_cast( maxsize ); - twidth = static_cast( static_cast(maxsize) / ar ); + twidth = width; + theight = height; } - assert( twidth <= maxsize && theight <= maxsize ); - } - else - { - twidth = width; - theight = height; - } - // Determine format - WICPixelFormatGUID pixelFormat; - hr = frame->GetPixelFormat( &pixelFormat ); - if ( FAILED(hr) ) - return hr; + // Determine format + WICPixelFormatGUID pixelFormat; + hr = frame->GetPixelFormat(&pixelFormat); + if (FAILED(hr)) + return hr; - WICPixelFormatGUID convertGUID; - memcpy( &convertGUID, &pixelFormat, sizeof(WICPixelFormatGUID) ); + WICPixelFormatGUID convertGUID; + memcpy(&convertGUID, &pixelFormat, sizeof(WICPixelFormatGUID)); - size_t bpp = 0; + size_t bpp = 0; - DXGI_FORMAT format = _WICToDXGI( pixelFormat ); - if ( format == DXGI_FORMAT_UNKNOWN ) - { - if ( memcmp( &GUID_WICPixelFormat96bppRGBFixedPoint, &pixelFormat, sizeof(WICPixelFormatGUID) ) == 0 ) + DXGI_FORMAT format = _WICToDXGI(pixelFormat); + if (format == DXGI_FORMAT_UNKNOWN) { -#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) - if ( g_WIC2 ) + if (memcmp(&GUID_WICPixelFormat96bppRGBFixedPoint, &pixelFormat, sizeof(WICPixelFormatGUID)) == 0) { - memcpy( &convertGUID, &GUID_WICPixelFormat96bppRGBFloat, sizeof(WICPixelFormatGUID) ); - format = DXGI_FORMAT_R32G32B32_FLOAT; - } - else +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) + if (g_WIC2) + { + memcpy(&convertGUID, &GUID_WICPixelFormat96bppRGBFloat, sizeof(WICPixelFormatGUID)); + format = DXGI_FORMAT_R32G32B32_FLOAT; + } + else #endif - { - memcpy( &convertGUID, &GUID_WICPixelFormat128bppRGBAFloat, sizeof(WICPixelFormatGUID) ); - format = DXGI_FORMAT_R32G32B32A32_FLOAT; + { + memcpy(&convertGUID, &GUID_WICPixelFormat128bppRGBAFloat, sizeof(WICPixelFormatGUID)); + format = DXGI_FORMAT_R32G32B32A32_FLOAT; + } } - } - else - { - for( size_t i=0; i < _countof(g_WICConvert); ++i ) + else { - if ( memcmp( &g_WICConvert[i].source, &pixelFormat, sizeof(WICPixelFormatGUID) ) == 0 ) + for (size_t i = 0; i < _countof(g_WICConvert); ++i) { - memcpy( &convertGUID, &g_WICConvert[i].target, sizeof(WICPixelFormatGUID) ); + if (memcmp(&g_WICConvert[i].source, &pixelFormat, sizeof(WICPixelFormatGUID)) == 0) + { + memcpy(&convertGUID, &g_WICConvert[i].target, sizeof(WICPixelFormatGUID)); - format = _WICToDXGI( g_WICConvert[i].target ); - assert( format != DXGI_FORMAT_UNKNOWN ); - bpp = _WICBitsPerPixel( convertGUID ); - break; + format = _WICToDXGI(g_WICConvert[i].target); + assert(format != DXGI_FORMAT_UNKNOWN); + bpp = _WICBitsPerPixel(convertGUID); + break; + } } } - } - if ( format == DXGI_FORMAT_UNKNOWN ) - return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED ); - } - else - { - bpp = _WICBitsPerPixel( pixelFormat ); - } + if (format == DXGI_FORMAT_UNKNOWN) + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + else + { + bpp = _WICBitsPerPixel(pixelFormat); + } #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) - if ( (format == DXGI_FORMAT_R32G32B32_FLOAT) && d3dContext != 0 && textureView != 0 ) - { - // Special case test for optional device support for autogen mipchains for R32G32B32_FLOAT - UINT fmtSupport = 0; - hr = d3dDevice->CheckFormatSupport( DXGI_FORMAT_R32G32B32_FLOAT, &fmtSupport ); - if ( FAILED(hr) || !( fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN ) ) + if ((format == DXGI_FORMAT_R32G32B32_FLOAT) && d3dContext != 0 && textureView != 0) { - // Use R32G32B32A32_FLOAT instead which is required for Feature Level 10.0 and up - memcpy( &convertGUID, &GUID_WICPixelFormat128bppRGBAFloat, sizeof(WICPixelFormatGUID) ); - format = DXGI_FORMAT_R32G32B32A32_FLOAT; - bpp = 128; + // Special case test for optional device support for autogen mipchains for R32G32B32_FLOAT + UINT fmtSupport = 0; + hr = d3dDevice->CheckFormatSupport(DXGI_FORMAT_R32G32B32_FLOAT, &fmtSupport); + if (FAILED(hr) || !(fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN)) + { + // Use R32G32B32A32_FLOAT instead which is required for Feature Level 10.0 and up + memcpy(&convertGUID, &GUID_WICPixelFormat128bppRGBAFloat, sizeof(WICPixelFormatGUID)); + format = DXGI_FORMAT_R32G32B32A32_FLOAT; + bpp = 128; + } } - } #endif - if ( !bpp ) - return E_FAIL; + if (!bpp) + return E_FAIL; - // Handle sRGB formats - if ( forceSRGB ) - { - format = MakeSRGB( format ); - } - else - { - ComPtr metareader; - if ( SUCCEEDED( frame->GetMetadataQueryReader( metareader.GetAddressOf() ) ) ) + // Handle sRGB formats + if (forceSRGB) + { + format = MakeSRGB(format); + } + else { - GUID containerFormat; - if ( SUCCEEDED( metareader->GetContainerFormat( &containerFormat ) ) ) + ComPtr metareader; + if (SUCCEEDED(frame->GetMetadataQueryReader(metareader.GetAddressOf()))) { - // Check for sRGB colorspace metadata - bool sRGB = false; + GUID containerFormat; + if (SUCCEEDED(metareader->GetContainerFormat(&containerFormat))) + { + // Check for sRGB colorspace metadata + bool sRGB = false; - PROPVARIANT value; - PropVariantInit( &value ); + PROPVARIANT value; + PropVariantInit(&value); - if ( memcmp( &containerFormat, &GUID_ContainerFormatPng, sizeof(GUID) ) == 0 ) - { - // Check for sRGB chunk - if ( SUCCEEDED( metareader->GetMetadataByName( L"/sRGB/RenderingIntent", &value ) ) && value.vt == VT_UI1 ) + if (memcmp(&containerFormat, &GUID_ContainerFormatPng, sizeof(GUID)) == 0) { - sRGB = true; + // Check for sRGB chunk + if (SUCCEEDED(metareader->GetMetadataByName(L"/sRGB/RenderingIntent", &value)) && value.vt == VT_UI1) + { + sRGB = true; + } } - } #if defined(_XBOX_ONE) && defined(_TITLE) - else if ( memcmp( &containerFormat, &GUID_ContainerFormatJpeg, sizeof(GUID) ) == 0 ) - { - if ( SUCCEEDED( metareader->GetMetadataByName( L"/app1/ifd/exif/{ushort=40961}", &value ) ) && value.vt == VT_UI2 && value.uiVal == 1 ) + else if (memcmp(&containerFormat, &GUID_ContainerFormatJpeg, sizeof(GUID)) == 0) { - sRGB = true; + if (SUCCEEDED(metareader->GetMetadataByName(L"/app1/ifd/exif/{ushort=40961}", &value)) && value.vt == VT_UI2 && value.uiVal == 1) + { + sRGB = true; + } } - } - else if ( memcmp( &containerFormat, &GUID_ContainerFormatTiff, sizeof(GUID) ) == 0 ) - { - if ( SUCCEEDED( metareader->GetMetadataByName( L"/ifd/exif/{ushort=40961}", &value ) ) && value.vt == VT_UI2 && value.uiVal == 1 ) + else if (memcmp(&containerFormat, &GUID_ContainerFormatTiff, sizeof(GUID)) == 0) { - sRGB = true; + if (SUCCEEDED(metareader->GetMetadataByName(L"/ifd/exif/{ushort=40961}", &value)) && value.vt == VT_UI2 && value.uiVal == 1) + { + sRGB = true; + } } - } #else - else if ( SUCCEEDED( metareader->GetMetadataByName( L"System.Image.ColorSpace", &value ) ) && value.vt == VT_UI2 && value.uiVal == 1 ) - { - sRGB = true; - } + else if (SUCCEEDED(metareader->GetMetadataByName(L"System.Image.ColorSpace", &value)) && value.vt == VT_UI2 && value.uiVal == 1) + { + sRGB = true; + } #endif - PropVariantClear( &value ); + PropVariantClear(&value); - if ( sRGB ) - format = MakeSRGB( format ); + if (sRGB) + format = MakeSRGB(format); + } } } - } - - // Verify our target format is supported by the current device - // (handles WDDM 1.0 or WDDM 1.1 device driver cases as well as DirectX 11.0 Runtime without 16bpp format support) - UINT support = 0; - hr = d3dDevice->CheckFormatSupport( format, &support ); - if ( FAILED(hr) || !(support & D3D11_FORMAT_SUPPORT_TEXTURE2D) ) - { - // Fallback to RGBA 32-bit format which is supported by all devices - memcpy( &convertGUID, &GUID_WICPixelFormat32bppRGBA, sizeof(WICPixelFormatGUID) ); - format = DXGI_FORMAT_R8G8B8A8_UNORM; - bpp = 32; - } - // Allocate temporary memory for image - size_t rowPitch = ( twidth * bpp + 7 ) / 8; - size_t imageSize = rowPitch * theight; + // Verify our target format is supported by the current device + // (handles WDDM 1.0 or WDDM 1.1 device driver cases as well as DirectX 11.0 Runtime without 16bpp format support) + UINT support = 0; + hr = d3dDevice->CheckFormatSupport(format, &support); + if (FAILED(hr) || !(support & D3D11_FORMAT_SUPPORT_TEXTURE2D)) + { + // Fallback to RGBA 32-bit format which is supported by all devices + memcpy(&convertGUID, &GUID_WICPixelFormat32bppRGBA, sizeof(WICPixelFormatGUID)); + format = DXGI_FORMAT_R8G8B8A8_UNORM; + bpp = 32; + } - std::unique_ptr temp( new (std::nothrow) uint8_t[ imageSize ] ); - if (!temp) - return E_OUTOFMEMORY; + // Allocate temporary memory for image + size_t rowPitch = (twidth * bpp + 7) / 8; + size_t imageSize = rowPitch * theight; - // Load image data - if ( memcmp( &convertGUID, &pixelFormat, sizeof(GUID) ) == 0 - && twidth == width - && theight == height ) - { - // No format conversion or resize needed - hr = frame->CopyPixels( 0, static_cast( rowPitch ), static_cast( imageSize ), temp.get() ); - if ( FAILED(hr) ) - return hr; - } - else if ( twidth != width || theight != height ) - { - // Resize - IWICImagingFactory* pWIC = _GetWIC(); - if ( !pWIC ) - return E_NOINTERFACE; - - ComPtr scaler; - hr = pWIC->CreateBitmapScaler( scaler.GetAddressOf() ); - if ( FAILED(hr) ) - return hr; + std::unique_ptr temp(new (std::nothrow) uint8_t[imageSize]); + if (!temp) + return E_OUTOFMEMORY; - hr = scaler->Initialize( frame, twidth, theight, WICBitmapInterpolationModeFant ); - if ( FAILED(hr) ) - return hr; + // Load image data + if (memcmp(&convertGUID, &pixelFormat, sizeof(GUID)) == 0 + && twidth == width + && theight == height) + { + // No format conversion or resize needed + hr = frame->CopyPixels(0, static_cast(rowPitch), static_cast(imageSize), temp.get()); + if (FAILED(hr)) + return hr; + } + else if (twidth != width || theight != height) + { + // Resize + auto pWIC = _GetWIC(); + if (!pWIC) + return E_NOINTERFACE; + + ComPtr scaler; + hr = pWIC->CreateBitmapScaler(scaler.GetAddressOf()); + if (FAILED(hr)) + return hr; - WICPixelFormatGUID pfScaler; - hr = scaler->GetPixelFormat( &pfScaler ); - if ( FAILED(hr) ) - return hr; + hr = scaler->Initialize(frame, twidth, theight, WICBitmapInterpolationModeFant); + if (FAILED(hr)) + return hr; - if ( memcmp( &convertGUID, &pfScaler, sizeof(GUID) ) == 0 ) - { - // No format conversion needed - hr = scaler->CopyPixels( 0, static_cast( rowPitch ), static_cast( imageSize ), temp.get() ); - if ( FAILED(hr) ) + WICPixelFormatGUID pfScaler; + hr = scaler->GetPixelFormat(&pfScaler); + if (FAILED(hr)) return hr; + + if (memcmp(&convertGUID, &pfScaler, sizeof(GUID)) == 0) + { + // No format conversion needed + hr = scaler->CopyPixels(0, static_cast(rowPitch), static_cast(imageSize), temp.get()); + if (FAILED(hr)) + return hr; + } + else + { + ComPtr FC; + hr = pWIC->CreateFormatConverter(FC.GetAddressOf()); + if (FAILED(hr)) + return hr; + + BOOL canConvert = FALSE; + hr = FC->CanConvert(pfScaler, convertGUID, &canConvert); + if (FAILED(hr) || !canConvert) + { + return E_UNEXPECTED; + } + + hr = FC->Initialize(scaler.Get(), convertGUID, WICBitmapDitherTypeErrorDiffusion, 0, 0, WICBitmapPaletteTypeCustom); + if (FAILED(hr)) + return hr; + + hr = FC->CopyPixels(0, static_cast(rowPitch), static_cast(imageSize), temp.get()); + if (FAILED(hr)) + return hr; + } } else { + // Format conversion but no resize + auto pWIC = _GetWIC(); + if (!pWIC) + return E_NOINTERFACE; + ComPtr FC; - hr = pWIC->CreateFormatConverter( FC.GetAddressOf() ); - if ( FAILED(hr) ) + hr = pWIC->CreateFormatConverter(FC.GetAddressOf()); + if (FAILED(hr)) return hr; BOOL canConvert = FALSE; - hr = FC->CanConvert( pfScaler, convertGUID, &canConvert ); - if ( FAILED(hr) || !canConvert ) + hr = FC->CanConvert(pixelFormat, convertGUID, &canConvert); + if (FAILED(hr) || !canConvert) { return E_UNEXPECTED; } - hr = FC->Initialize( scaler.Get(), convertGUID, WICBitmapDitherTypeErrorDiffusion, 0, 0, WICBitmapPaletteTypeCustom ); - if ( FAILED(hr) ) + hr = FC->Initialize(frame, convertGUID, WICBitmapDitherTypeErrorDiffusion, 0, 0, WICBitmapPaletteTypeCustom); + if (FAILED(hr)) return hr; - hr = FC->CopyPixels( 0, static_cast( rowPitch ), static_cast( imageSize ), temp.get() ); - if ( FAILED(hr) ) + hr = FC->CopyPixels(0, static_cast(rowPitch), static_cast(imageSize), temp.get()); + if (FAILED(hr)) return hr; } - } - else - { - // Format conversion but no resize - IWICImagingFactory* pWIC = _GetWIC(); - if ( !pWIC ) - return E_NOINTERFACE; - - ComPtr FC; - hr = pWIC->CreateFormatConverter( FC.GetAddressOf() ); - if ( FAILED(hr) ) - return hr; - BOOL canConvert = FALSE; - hr = FC->CanConvert( pixelFormat, convertGUID, &canConvert ); - if ( FAILED(hr) || !canConvert ) + // See if format is supported for auto-gen mipmaps (varies by feature level) + bool autogen = false; + if (d3dContext != 0 && textureView != 0) // Must have context and shader-view to auto generate mipmaps { - return E_UNEXPECTED; - } - - hr = FC->Initialize( frame, convertGUID, WICBitmapDitherTypeErrorDiffusion, 0, 0, WICBitmapPaletteTypeCustom ); - if ( FAILED(hr) ) - return hr; - - hr = FC->CopyPixels( 0, static_cast( rowPitch ), static_cast( imageSize ), temp.get() ); - if ( FAILED(hr) ) - return hr; - } - - // See if format is supported for auto-gen mipmaps (varies by feature level) - bool autogen = false; - if ( d3dContext != 0 && textureView != 0 ) // Must have context and shader-view to auto generate mipmaps - { - UINT fmtSupport = 0; - hr = d3dDevice->CheckFormatSupport( format, &fmtSupport ); - if ( SUCCEEDED(hr) && ( fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN ) ) - { - autogen = true; + UINT fmtSupport = 0; + hr = d3dDevice->CheckFormatSupport(format, &fmtSupport); + if (SUCCEEDED(hr) && (fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN)) + { + autogen = true; #if defined(_XBOX_ONE) && defined(_TITLE) - if ( !d3dDeviceX || !d3dContextX ) - return E_INVALIDARG; + if (!d3dDeviceX || !d3dContextX) + return E_INVALIDARG; #endif + } } - } - // Create texture - D3D11_TEXTURE2D_DESC desc; - desc.Width = twidth; - desc.Height = theight; - desc.MipLevels = (autogen) ? 0 : 1; - desc.ArraySize = 1; - desc.Format = format; - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; - desc.Usage = usage; - desc.CPUAccessFlags = cpuAccessFlags; - - if ( autogen ) - { - desc.BindFlags = bindFlags | D3D11_BIND_RENDER_TARGET; - desc.MiscFlags = miscFlags | D3D11_RESOURCE_MISC_GENERATE_MIPS; - } - else - { - desc.BindFlags = bindFlags; - desc.MiscFlags = miscFlags; - } + // Create texture + D3D11_TEXTURE2D_DESC desc; + desc.Width = twidth; + desc.Height = theight; + desc.MipLevels = (autogen) ? 0 : 1; + desc.ArraySize = 1; + desc.Format = format; + desc.SampleDesc.Count = 1; + desc.SampleDesc.Quality = 0; + desc.Usage = usage; + desc.CPUAccessFlags = cpuAccessFlags; + + if (autogen) + { + desc.BindFlags = bindFlags | D3D11_BIND_RENDER_TARGET; + desc.MiscFlags = miscFlags | D3D11_RESOURCE_MISC_GENERATE_MIPS; + } + else + { + desc.BindFlags = bindFlags; + desc.MiscFlags = miscFlags; + } - D3D11_SUBRESOURCE_DATA initData; - initData.pSysMem = temp.get(); - initData.SysMemPitch = static_cast( rowPitch ); - initData.SysMemSlicePitch = static_cast( imageSize ); + D3D11_SUBRESOURCE_DATA initData; + initData.pSysMem = temp.get(); + initData.SysMemPitch = static_cast(rowPitch); + initData.SysMemSlicePitch = static_cast(imageSize); - ID3D11Texture2D* tex = nullptr; - hr = d3dDevice->CreateTexture2D( &desc, (autogen) ? nullptr : &initData, &tex ); - if ( SUCCEEDED(hr) && tex != 0 ) - { - if (textureView != 0) + ID3D11Texture2D* tex = nullptr; + hr = d3dDevice->CreateTexture2D(&desc, (autogen) ? nullptr : &initData, &tex); + if (SUCCEEDED(hr) && tex != 0) { - D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc; - memset( &SRVDesc, 0, sizeof( SRVDesc ) ); - SRVDesc.Format = desc.Format; + if (textureView != 0) + { + D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; + SRVDesc.Format = desc.Format; - SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - SRVDesc.Texture2D.MipLevels = (autogen) ? -1 : 1; + SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + SRVDesc.Texture2D.MipLevels = (autogen) ? -1 : 1; - hr = d3dDevice->CreateShaderResourceView( tex, &SRVDesc, textureView ); - if ( FAILED(hr) ) - { - tex->Release(); - return hr; - } + hr = d3dDevice->CreateShaderResourceView(tex, &SRVDesc, textureView); + if (FAILED(hr)) + { + tex->Release(); + return hr; + } - if ( autogen ) - { - assert( d3dContext != 0 ); + if (autogen) + { + assert(d3dContext != 0); #if defined(_XBOX_ONE) && defined(_TITLE) - ID3D11Texture2D *pStaging = nullptr; - CD3D11_TEXTURE2D_DESC stagingDesc( format, twidth, theight, 1, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ, 1, 0, 0 ); - initData.pSysMem = temp.get(); - initData.SysMemPitch = static_cast(rowPitch); - initData.SysMemSlicePitch = static_cast(imageSize); - - hr = d3dDevice->CreateTexture2D( &stagingDesc, &initData, &pStaging ); - if ( SUCCEEDED(hr) ) - { - d3dContext->CopySubresourceRegion( tex, 0, 0, 0, 0, pStaging, 0, nullptr ); + ID3D11Texture2D *pStaging = nullptr; + CD3D11_TEXTURE2D_DESC stagingDesc(format, twidth, theight, 1, 1, 0, D3D11_USAGE_STAGING, D3D11_CPU_ACCESS_READ, 1, 0, 0); + initData.pSysMem = temp.get(); + initData.SysMemPitch = static_cast(rowPitch); + initData.SysMemSlicePitch = static_cast(imageSize); + + hr = d3dDevice->CreateTexture2D(&stagingDesc, &initData, &pStaging); + if (SUCCEEDED(hr)) + { + d3dContext->CopySubresourceRegion(tex, 0, 0, 0, 0, pStaging, 0, nullptr); - UINT64 copyFence = d3dContextX->InsertFence(0); - while( d3dDeviceX->IsFencePending( copyFence ) ) { SwitchToThread(); } - pStaging->Release(); - } + UINT64 copyFence = d3dContextX->InsertFence(0); + while (d3dDeviceX->IsFencePending(copyFence)) { SwitchToThread(); } + pStaging->Release(); + } #else - d3dContext->UpdateSubresource( tex, 0, nullptr, temp.get(), static_cast(rowPitch), static_cast(imageSize) ); + d3dContext->UpdateSubresource(tex, 0, nullptr, temp.get(), static_cast(rowPitch), static_cast(imageSize)); #endif - d3dContext->GenerateMips( *textureView ); + d3dContext->GenerateMips(*textureView); + } } - } - if (texture != 0) - { - *texture = tex; - } - else - { - SetDebugObjectName(tex, "WICTextureLoader"); - tex->Release(); + if (texture != 0) + { + *texture = tex; + } + else + { + SetDebugObjectName(tex, "WICTextureLoader"); + tex->Release(); + } } - } - return hr; -} + return hr; + } +} // anonymous namespace //-------------------------------------------------------------------------------------- _Use_decl_annotations_ @@ -779,7 +781,7 @@ HRESULT DirectX::CreateWICTextureFromMemoryEx( ID3D11Device* d3dDevice, return HRESULT_FROM_WIN32( ERROR_FILE_TOO_LARGE ); #endif - IWICImagingFactory* pWIC = _GetWIC(); + auto pWIC = _GetWIC(); if ( !pWIC ) return E_NOINTERFACE; @@ -866,7 +868,7 @@ HRESULT DirectX::CreateWICTextureFromMemoryEx( ID3D11Device* d3dDevice, return HRESULT_FROM_WIN32( ERROR_FILE_TOO_LARGE ); #endif - IWICImagingFactory* pWIC = _GetWIC(); + auto pWIC = _GetWIC(); if ( !pWIC ) return E_NOINTERFACE; @@ -969,7 +971,7 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, if (!d3dDevice || !fileName || (!texture && !textureView)) return E_INVALIDARG; - IWICImagingFactory* pWIC = _GetWIC(); + auto pWIC = _GetWIC(); if ( !pWIC ) return E_NOINTERFACE; @@ -995,18 +997,27 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) if ( SUCCEEDED(hr) ) { - #if defined(_XBOX_ONE) && defined(_TITLE) - if (texture != 0 && *texture != 0) - { - (*texture)->SetName( fileName ); - } - if (textureView != 0 && *textureView != 0 ) - { - (*textureView)->SetName( fileName ); - } - #else if (texture != 0 || textureView != 0) { +#if defined(_XBOX_ONE) && defined(_TITLE) + const wchar_t* pstrName = wcsrchr(fileName, '\\'); + if (!pstrName) + { + pstrName = fileName; + } + else + { + pstrName++; + } + if (texture != 0 && *texture != 0) + { + (*texture)->SetName( pstrName ); + } + if (textureView != 0 && *textureView != 0 ) + { + (*textureView)->SetName( pstrName ); + } + #else CHAR strFileA[MAX_PATH]; int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, @@ -1019,7 +1030,7 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, ); if ( result > 0 ) { - const CHAR* pstrName = strrchr( strFileA, '\\' ); + const char* pstrName = strrchr( strFileA, '\\' ); if (!pstrName) { pstrName = strFileA; @@ -1045,8 +1056,8 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, ); } } - } #endif + } } #endif @@ -1083,7 +1094,7 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, if (!d3dDevice || !fileName || (!texture && !textureView)) return E_INVALIDARG; - IWICImagingFactory* pWIC = _GetWIC(); + auto pWIC = _GetWIC(); if ( !pWIC ) return E_NOINTERFACE; @@ -1109,18 +1120,27 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) if ( SUCCEEDED(hr) ) { - #if defined(_XBOX_ONE) && defined(_TITLE) - if (texture != 0 && *texture != 0) - { - (*texture)->SetName( fileName ); - } - if (textureView != 0 && *textureView != 0 ) - { - (*textureView)->SetName( fileName ); - } - #else if (texture != 0 || textureView != 0) { + #if defined(_XBOX_ONE) && defined(_TITLE) + const wchar_t* pstrName = wcsrchr(fileName, '\\'); + if (!pstrName) + { + pstrName = fileName; + } + else + { + pstrName++; + } + if (texture != 0 && *texture != 0) + { + (*texture)->SetName( pstrName ); + } + if (textureView != 0 && *textureView != 0 ) + { + (*textureView)->SetName( pstrName ); + } + #else CHAR strFileA[MAX_PATH]; int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, @@ -1133,7 +1153,7 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, ); if ( result > 0 ) { - const CHAR* pstrName = strrchr( strFileA, '\\' ); + const char* pstrName = strrchr( strFileA, '\\' ); if (!pstrName) { pstrName = strFileA; @@ -1159,8 +1179,8 @@ HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice, ); } } - } #endif + } } #endif diff --git a/Media/Sounds/ATG_SpatialMotion_monoFunkDrums1Loop.wav b/Media/Sounds/ATG_SpatialMotion_monoFunkDrums1Loop.wav new file mode 100644 index 0000000000000000000000000000000000000000..516a9d2eb9b287187e89085e109dbfd4727b9eab Binary files /dev/null and b/Media/Sounds/ATG_SpatialMotion_monoFunkDrums1Loop.wav differ diff --git a/Media/Textures/callout_circle.dds b/Media/Textures/callout_circle.dds new file mode 100644 index 0000000000000000000000000000000000000000..0ce449bc022180d7a49d2b97fd698eb48b24320e Binary files /dev/null and b/Media/Textures/callout_circle.dds differ diff --git a/Media/Textures/circle.dds b/Media/Textures/circle.dds new file mode 100644 index 0000000000000000000000000000000000000000..35aa072efdd2f4f65d3c33136adff12cdc100d52 Binary files /dev/null and b/Media/Textures/circle.dds differ diff --git a/README.md b/README.md index 2ed43cce3717ed19aca897ada93f1e3b63884d03..bd5d1e3c95353da8df626c8d4194f4635341a466 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ This repo contains game development samples written by the Microsoft Xbox Advanc * ``Media`` contains media files used by the samples * ``Samples`` * ``Audio`` - * ``Graphics`` + * ``IntroGraphics`` * ``System`` * ``Tools`` # Requirements * Windows 10 November 2015 -* Visual Studio 2015 Update 1 with the Windows 10 SDK (10586) +* Visual Studio 2015 Update 2 with the Windows 10 SDK (10586) diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/Logo.png b/Samples/Audio/SimplePlay3DSoundUWP/Assets/Logo.png similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/Logo.png rename to Samples/Audio/SimplePlay3DSoundUWP/Assets/Logo.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/SmallLogo.png b/Samples/Audio/SimplePlay3DSoundUWP/Assets/SmallLogo.png similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/SmallLogo.png rename to Samples/Audio/SimplePlay3DSoundUWP/Assets/SmallLogo.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/SplashScreen.png b/Samples/Audio/SimplePlay3DSoundUWP/Assets/SplashScreen.png similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/SplashScreen.png rename to Samples/Audio/SimplePlay3DSoundUWP/Assets/SplashScreen.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/StoreLogo.png b/Samples/Audio/SimplePlay3DSoundUWP/Assets/StoreLogo.png similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/StoreLogo.png rename to Samples/Audio/SimplePlay3DSoundUWP/Assets/StoreLogo.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/WideLogo.png b/Samples/Audio/SimplePlay3DSoundUWP/Assets/WideLogo.png similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/WideLogo.png rename to Samples/Audio/SimplePlay3DSoundUWP/Assets/WideLogo.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DeviceResources.cpp b/Samples/Audio/SimplePlay3DSoundUWP/DeviceResources.cpp similarity index 91% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DeviceResources.cpp rename to Samples/Audio/SimplePlay3DSoundUWP/DeviceResources.cpp index 49dc516d686e80f874ab22d77eaa60873118d670..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/Graphics/DirectXTKSimpleSampleUWP/DeviceResources.cpp +++ b/Samples/Audio/SimplePlay3DSoundUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -352,29 +351,32 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() m_d3dRenderTargetView.ReleaseAndGetAddressOf() )); - // Create a depth stencil view for use with 3D rendering if needed. - CD3D11_TEXTURE2D_DESC depthStencilDesc( - m_depthBufferFormat, - backBufferWidth, - backBufferHeight, - 1, // This depth stencil view has only one texture. - 1, // Use a single mipmap level. - D3D11_BIND_DEPTH_STENCIL - ); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); - ComPtr depthStencil; - DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( - &depthStencilDesc, - nullptr, - depthStencil.GetAddressOf() - )); + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); - CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); - DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( - depthStencil.Get(), - &depthStencilViewDesc, - m_d3dDepthStencilView.ReleaseAndGetAddressOf() - )); + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } // Set the 3D rendering viewport to target the entire window. m_screenViewport = CD3D11_VIEWPORT( @@ -522,8 +524,11 @@ void DX::DeviceResources::Present() // overwritten. If dirty or scroll rects are used, this call should be removed. m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); - // Discard the contents of the depth stencil. - m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } // If the device was removed either by a disconnection or a driver upgrade, we // must recreate all device resources. @@ -575,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DeviceResources.h b/Samples/Audio/SimplePlay3DSoundUWP/DeviceResources.h similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DeviceResources.h rename to Samples/Audio/SimplePlay3DSoundUWP/DeviceResources.h diff --git a/Samples/Audio/SimplePlay3DSoundUWP/Main.cpp b/Samples/Audio/SimplePlay3DSoundUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7c56cf1ec3fa64f0622170e4d5660ec73dc75339 --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimplePlay3DSound.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/Audio/SimplePlay3DSoundUWP/Package.appxmanifest b/Samples/Audio/SimplePlay3DSoundUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..bddaba55aed5e05e2ac6be4d7c4e4405bd18bea0 --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + SimplePlay3DSound + jeball + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Audio/SimplePlay3DSoundUWP/Readme.docx b/Samples/Audio/SimplePlay3DSoundUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..c88f1bf69ea5bccaffd79fbbe799cfed76048f1a Binary files /dev/null and b/Samples/Audio/SimplePlay3DSoundUWP/Readme.docx differ diff --git a/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.cpp b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e29bf964e7158c2d8a81c76c8bb9277a5f72501e --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.cpp @@ -0,0 +1,911 @@ +//-------------------------------------------------------------------------------------- +// SimplePlay3DSound.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimplePlay3DSound.h" + +#include "ATGColors.h" +#include "ControllerFont.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ + const wchar_t* c_WaveFile = L"ATG_SpatialMotion_monoFunkDrums1Loop.wav"; + const float c_RotateScale = 0.1f; + const float c_MaxHeight = 100; + const float c_MoveScale = 3.0f; + + const XAUDIO2FX_REVERB_I3DL2_PARAMETERS g_ReverbPreset[] = + { + XAUDIO2FX_I3DL2_PRESET_FOREST, + XAUDIO2FX_I3DL2_PRESET_DEFAULT, + XAUDIO2FX_I3DL2_PRESET_GENERIC, + XAUDIO2FX_I3DL2_PRESET_PADDEDCELL, + XAUDIO2FX_I3DL2_PRESET_ROOM, + XAUDIO2FX_I3DL2_PRESET_BATHROOM, + XAUDIO2FX_I3DL2_PRESET_LIVINGROOM, + XAUDIO2FX_I3DL2_PRESET_STONEROOM, + XAUDIO2FX_I3DL2_PRESET_AUDITORIUM, + XAUDIO2FX_I3DL2_PRESET_CONCERTHALL, + XAUDIO2FX_I3DL2_PRESET_CAVE, + XAUDIO2FX_I3DL2_PRESET_ARENA, + XAUDIO2FX_I3DL2_PRESET_HANGAR, + XAUDIO2FX_I3DL2_PRESET_CARPETEDHALLWAY, + XAUDIO2FX_I3DL2_PRESET_HALLWAY, + XAUDIO2FX_I3DL2_PRESET_STONECORRIDOR, + XAUDIO2FX_I3DL2_PRESET_ALLEY, + XAUDIO2FX_I3DL2_PRESET_CITY, + XAUDIO2FX_I3DL2_PRESET_MOUNTAINS, + XAUDIO2FX_I3DL2_PRESET_QUARRY, + XAUDIO2FX_I3DL2_PRESET_PLAIN, + XAUDIO2FX_I3DL2_PRESET_PARKINGLOT, + XAUDIO2FX_I3DL2_PRESET_SEWERPIPE, + XAUDIO2FX_I3DL2_PRESET_UNDERWATER, + XAUDIO2FX_I3DL2_PRESET_SMALLROOM, + XAUDIO2FX_I3DL2_PRESET_MEDIUMROOM, + XAUDIO2FX_I3DL2_PRESET_LARGEROOM, + XAUDIO2FX_I3DL2_PRESET_MEDIUMHALL, + XAUDIO2FX_I3DL2_PRESET_LARGEHALL, + XAUDIO2FX_I3DL2_PRESET_PLATE, + }; + + const wchar_t* g_PresetNames[] = + { + L"Forest", + L"Default", + L"Generic", + L"Padded cell", + L"Room", + L"Bathroom", + L"Living room", + L"Stone room", + L"Auditorium", + L"Concert hall", + L"Cave", + L"Arena", + L"Hangar", + L"Carpeted hallway", + L"Hallway", + L"Stone Corridor", + L"Alley", + L"City", + L"Mountains", + L"Quarry", + L"Plain", + L"Parking lot", + L"Sewer pipe", + L"Underwater", + L"Small room", + L"Medium room", + L"Large room", + L"Medium hall", + L"Large hall", + L"Plate", + }; + + static_assert(_countof(g_ReverbPreset) == _countof(g_PresetNames), "Preset array mismatch"); +} + +Sample::Sample() : + m_masteringVoice(nullptr), + m_sourceVoice(nullptr), + m_submixVoice(nullptr), + m_reverbIndex(0), + m_gamepadPresent(false) +{ + m_deviceResources = std::make_unique(DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_UNKNOWN); + m_deviceResources->RegisterDeviceNotify(this); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); + + //Start XAudio2 + DX::ThrowIfFailed(XAudio2Create(m_XAudio2.GetAddressOf(), 0)); + DX::ThrowIfFailed(m_XAudio2->CreateMasteringVoice(&m_masteringVoice)); + + DWORD channelMask; + DX::ThrowIfFailed(m_masteringVoice->GetChannelMask(&channelMask)); + + m_masteringVoice->GetVoiceDetails(&m_deviceDetails); + + //Add reverb on a submix + DX::ThrowIfFailed(XAudio2CreateReverb(&m_reverbEffect, 0)); + + XAUDIO2_EFFECT_DESCRIPTOR effects[] = { { m_reverbEffect.Get(), TRUE, 1 } }; + XAUDIO2_EFFECT_CHAIN effectChain = { 1, effects }; + + DX::ThrowIfFailed(m_XAudio2->CreateSubmixVoice(&m_submixVoice, 1, m_deviceDetails.InputSampleRate, 0, 0, NULL, &effectChain)); + + SetReverb(0); + + //Start X3DAudio + DX::ThrowIfFailed(X3DAudioInitialize(channelMask, X3DAUDIO_SPEED_OF_SOUND, m_X3DInstance)); + + memset(&m_X3DDSPSettings, 0, sizeof(X3DAUDIO_DSP_SETTINGS)); + + //Setup DSP + m_matrix = std::make_unique(m_deviceDetails.InputChannels); + m_X3DDSPSettings.SrcChannelCount = 1; + m_X3DDSPSettings.DstChannelCount = m_deviceDetails.InputChannels; + m_X3DDSPSettings.pMatrixCoefficients = m_matrix.get(); + + SetupEnvironment(); + + //Start the audio playback + PlayFile(c_WaveFile); +} + + +//-------------------------------------------------------------------------------------- +// Name: SetupEnvironment() +// Desc: Sets the environment for audio playback +//-------------------------------------------------------------------------------------- + +void Sample::SetupEnvironment() +{ + memset(&m_X3DListener, 0, sizeof(X3DAUDIO_LISTENER)); + memset(&m_X3DEmitter, 0, sizeof(X3DAUDIO_EMITTER)); + + //Listener is facing the top of the screen + m_X3DListener.OrientFront.y = -1.0f; + m_X3DListener.OrientTop.z = 1.0f; + m_listenerAngle = 0.0f; + + //Emitter is facing the bottom of the screen + m_X3DEmitter.OrientFront.y = 1.0f; + m_X3DEmitter.OrientTop.z = 1.0f; + m_emitterAngle = X3DAUDIO_PI; + + //Audio in use is in mono + m_X3DEmitter.ChannelCount = 1; + + //Volume attenuation curve + m_volumePoints[0].Distance = 0.0f; + m_volumePoints[0].DSPSetting = 1.0f; + m_volumePoints[1].Distance = 0.2f; + m_volumePoints[1].DSPSetting = 1.0f; + m_volumePoints[2].Distance = 0.3f; + m_volumePoints[2].DSPSetting = 0.5f; + m_volumePoints[3].Distance = 0.4f; + m_volumePoints[3].DSPSetting = 0.35f; + m_volumePoints[4].Distance = 0.5f; + m_volumePoints[4].DSPSetting = 0.23f; + m_volumePoints[5].Distance = 0.6f; + m_volumePoints[5].DSPSetting = 0.16f; + m_volumePoints[6].Distance = 0.7f; + m_volumePoints[6].DSPSetting = 0.1f; + m_volumePoints[7].Distance = 0.8f; + m_volumePoints[7].DSPSetting = 0.06f; + m_volumePoints[8].Distance = 0.9f; + m_volumePoints[8].DSPSetting = 0.04f; + m_volumePoints[9].Distance = 1.0f; + m_volumePoints[9].DSPSetting = 0.0f; + m_volumeCurve.PointCount = 10; + m_volumeCurve.pPoints = m_volumePoints; + + //Reverb attenuation curve + m_reverbPoints[0].Distance = 0.0f; + m_reverbPoints[0].DSPSetting = 0.7f; + m_reverbPoints[1].Distance = 0.2f; + m_reverbPoints[1].DSPSetting = 0.78f; + m_reverbPoints[2].Distance = 0.3f; + m_reverbPoints[2].DSPSetting = 0.85f; + m_reverbPoints[3].Distance = 0.4f; + m_reverbPoints[3].DSPSetting = 1.0f; + m_reverbPoints[4].Distance = 0.5f; + m_reverbPoints[4].DSPSetting = 1.0f; + m_reverbPoints[5].Distance = 0.6f; + m_reverbPoints[5].DSPSetting = 0.6f; + m_reverbPoints[6].Distance = 0.7f; + m_reverbPoints[6].DSPSetting = 0.4f; + m_reverbPoints[7].Distance = 0.8f; + m_reverbPoints[7].DSPSetting = 0.25f; + m_reverbPoints[8].Distance = 0.9f; + m_reverbPoints[8].DSPSetting = 0.11f; + m_reverbPoints[9].Distance = 1.0f; + m_reverbPoints[9].DSPSetting = 0.0f; + m_reverbCurve.PointCount = 10; + m_reverbCurve.pPoints = m_reverbPoints; + + //Add the curves to every emitter + m_X3DEmitter.pVolumeCurve = &m_volumeCurve; + m_X3DEmitter.pReverbCurve = &m_reverbCurve; + + //Emitter cone (only for the first "mode") + m_emitterCone.InnerAngle = X3DAUDIO_PI / 2; + m_emitterCone.OuterAngle = X3DAUDIO_PI; + m_emitterCone.InnerVolume = 1.0f; + m_emitterCone.OuterVolume = 0.0f; + m_emitterCone.InnerReverb = 1.0f; + m_emitterCone.OuterReverb = 0.0f; + m_X3DEmitter.pCone = &m_emitterCone; + + //Set how much distance influences the sound + m_X3DEmitter.CurveDistanceScaler = 300; + + //Start the listener and emitter in the middle of the screen + auto rect = m_deviceResources->GetOutputSize(); + m_X3DListener.Position = X3DAUDIO_VECTOR(float(rect.right / 2), float(rect.bottom / 2), 0); + m_X3DEmitter.Position = X3DAUDIO_VECTOR(float(rect.right / 2), float((rect.bottom / 2) - 100), 0); +} + +//-------------------------------------------------------------------------------------- +// Name: PlayFile() +// Desc: Starts playback from the given wavefile +//-------------------------------------------------------------------------------------- +void Sample::PlayFile(const wchar_t* filename) +{ + // Read the wave file + DX::WAVData waveData; + DX::ThrowIfFailed(DX::LoadWAVAudioFromFileEx(filename, m_waveFile, waveData)); + + XAUDIO2_SEND_DESCRIPTOR sendDescriptors[2] = {}; + sendDescriptors[0].Flags = XAUDIO2_SEND_USEFILTER; + sendDescriptors[0].pOutputVoice = m_masteringVoice; + sendDescriptors[1].Flags = XAUDIO2_SEND_USEFILTER; + sendDescriptors[1].pOutputVoice = m_submixVoice; + const XAUDIO2_VOICE_SENDS sendList = { 2, sendDescriptors }; + + // Create the source voice + DX::ThrowIfFailed(m_XAudio2->CreateSourceVoice(&m_sourceVoice, waveData.wfx, 0, XAUDIO2_DEFAULT_FREQ_RATIO, NULL, &sendList)); + + // Submit the wave sample data using an XAUDIO2_BUFFER structure + XAUDIO2_BUFFER buffer = {0}; + buffer.pAudioData = waveData.startAudio; + buffer.Flags = XAUDIO2_END_OF_STREAM; + buffer.AudioBytes = waveData.audioBytes; + buffer.LoopCount = XAUDIO2_LOOP_INFINITE; + + DX::ThrowIfFailed(m_sourceVoice->SubmitSourceBuffer(&buffer)); + DX::ThrowIfFailed(m_sourceVoice->Start(0)); +} + +//-------------------------------------------------------------------------------------- +// Name: SetReverb() +// Desc: Sets the reverb settings +//-------------------------------------------------------------------------------------- +void Sample::SetReverb(int index) +{ + XAUDIO2FX_REVERB_PARAMETERS native; + ReverbConvertI3DL2ToNative(&g_ReverbPreset[index], &native); + + //Override rear for mono + native.RearDelay = 5; + m_submixVoice->SetEffectParameters(0, &native, sizeof(native)); +} + +//-------------------------------------------------------------------------------------- +// Name: AdjustFront() +// Desc: Adjusts the front orientation and angle of the body based on an input value +//-------------------------------------------------------------------------------------- +void Sample::AdjustFront(float value, X3DAUDIO_VECTOR *orientFront, float *angle) +{ + float temp = *angle; + temp += value*c_RotateScale; + + //Keep between 0 and 2 pi + if (temp >= X3DAUDIO_2PI) + { + temp -= X3DAUDIO_2PI; + } + else if (temp < 0) + { + temp += X3DAUDIO_2PI; + } + + //Update orientation as a unit vector based on the angle + orientFront->x = sinf(temp); + orientFront->y = -cosf(temp); + + CopyMemory(angle, &temp, sizeof(float)); +} + +//-------------------------------------------------------------------------------------- +// Name: DrawGrid() +// Desc: Draws a grid +//-------------------------------------------------------------------------------------- +void XM_CALLCONV Sample::DrawGrid(size_t xdivs, size_t ydivs, FXMVECTOR color) +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Draw grid"); + + context->OMSetBlendState(m_states->Opaque(), nullptr, 0xFFFFFFFF); + context->OMSetDepthStencilState(m_states->DepthNone(), 0); + context->RSSetState(m_states->CullNone()); + + m_batchEffect->Apply(context); + + context->IASetInputLayout(m_batchInputLayout.Get()); + + m_batch->Begin(); + + xdivs = std::max(1, xdivs); + ydivs = std::max(1, ydivs); + XMVECTORF32 point1, point2; + + for (size_t i = 0; i <= xdivs; ++i) + { + float fPercent = float(i) / float(xdivs); + fPercent = (fPercent * 2.0f) - 1.0f; + point1 = { fPercent, -1.f, 0.f }; + point2 = { fPercent, 1.f, 0.f }; + + VertexPositionColor v1(point1, color); + VertexPositionColor v2(point2, color); + m_batch->DrawLine(v1, v2); + } + + for (size_t i = 0; i <= ydivs; i++) + { + float fPercent = float(i) / float(ydivs); + fPercent = (fPercent * 2.0f) - 1.0f; + point1 = { -1.f, fPercent, 0.f }; + point2 = { 1.f, fPercent, 0.f }; + + VertexPositionColor v1(point1, color); + VertexPositionColor v2(point2, color); + m_batch->DrawLine(v1, v2); + } + + m_batch->End(); + + PIXEndEvent(context); +} + +//-------------------------------------------------------------------------------------- +// Name: DrawCircle() +// Desc: Draws a circle +//-------------------------------------------------------------------------------------- +void Sample::DrawCircle(X3DAUDIO_VECTOR position, float radius) +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Draw emitter"); + + XMFLOAT2 pos(position.x, m_deviceResources->GetOutputSize().bottom - position.y); + + //Circle has a default radius of 390 (based on the size of the texture) + //Also account for z(height) in the scale + float scale = (radius / 390) + (position.z / 200); + + m_spriteBatch->Begin(); + m_spriteBatch->Draw(m_circleTexture.Get(), pos, NULL, ATG::Colors::White, 0, XMFLOAT2(394, 394), scale); + m_spriteBatch->End(); + + PIXEndEvent(context); +} + +//-------------------------------------------------------------------------------------- +// Name: DrawEmitter() +// Desc: Draws the emitter triangle and cone +//-------------------------------------------------------------------------------------- +void XM_CALLCONV Sample::DrawEmitter(X3DAUDIO_CONE* cone, X3DAUDIO_VECTOR position, float angle, DirectX::FXMVECTOR color, UINT size) +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Draw emitter"); + + context->OMSetBlendState(m_states->Opaque(), nullptr, 0xFFFFFFFF); + context->OMSetDepthStencilState(m_states->DepthNone(), 0); + context->RSSetState(m_states->CullNone()); + + m_batchEffect->Apply(context); + + context->IASetInputLayout(m_batchInputLayout.Get()); + + //Scale for z (height) + float localSize = size + (position.z * 2); + float triangleSize = 15.0f + (position.z * .1f); + + float outerX = sinf(cone->OuterAngle / 2) * localSize; + float innerX = sinf(cone->InnerAngle / 2) * localSize; + float outerY = -cosf(cone->OuterAngle / 2) * localSize; + float innerY = -cosf(cone->InnerAngle / 2) * localSize; + + XMVECTOR v[7]; + //Outside cone + v[0] = XMVectorSet(-outerX, outerY, 0.0f, 1.0f); + v[1] = XMVectorSet(outerX, outerY, 0.0f, 1.0f); + //Inside cone + v[2] = XMVectorSet(-innerX, innerY, 0.0f, 1.0f); + v[3] = XMVectorSet(innerX, innerY, 0.0f, 1.0f); + //Emitter Triangle + v[4] = XMVectorSet(0.f, -triangleSize, 0.0f, 1.0f); + v[5] = XMVectorSet(-triangleSize, triangleSize, 0.0f, 1.0f); + v[6] = XMVectorSet(triangleSize, triangleSize, 0.0f, 1.0f); + + XMVECTOR vout[7]; + XMVECTOR vZero = XMVectorSet(0.0f, 0.0f, 0.0f, 1.0f); + XMMATRIX finalTransform = XMMatrixTransformation2D(vZero, 0, XMVectorSet(1, 1, 1.0f, 1.0f), vZero, angle, XMVectorSet(position.x, position.y, 0.0f, 1.0f)); + + for(int i=0; i< 7; i++) + { + vout[i] = XMVector4Transform(v[i], finalTransform); + } + + auto rect = m_deviceResources->GetOutputSize(); + + //Convert to -1,1 space + XMVECTORF32 vPosition = { (position.x * 2 / rect.right) - 1, (position.y * 2 / rect.bottom) - 1, 0.f }; + XMFLOAT3 tempv; + for (int i = 0; i < 7; i++) + { + XMStoreFloat3(&tempv, vout[i]); + + tempv.x = (tempv.x * 2 / rect.right) - 1; + tempv.y = (tempv.y * 2 / rect.bottom) - 1; + + vout[i] = XMLoadFloat3(&tempv); + } + + m_batch->Begin(); + + VertexPositionColor v1(vPosition, color); + VertexPositionColor v2; + + //Draw cones + v2 = VertexPositionColor(vout[0], color); + m_batch->DrawLine(v1, v2); + v2 = VertexPositionColor(vout[1], color); + m_batch->DrawLine(v1, v2); + v2 = VertexPositionColor(vout[2], color); + m_batch->DrawLine(v1, v2); + v2 = VertexPositionColor(vout[3], color); + m_batch->DrawLine(v1, v2); + + //Draw triangle + v1 = VertexPositionColor(vout[4], color); + v2 = VertexPositionColor(vout[5], color); + VertexPositionColor v3 = VertexPositionColor(vout[6], color); + m_batch->DrawTriangle(v1, v2, v3); + + m_batch->End(); + + PIXEndEvent(context); +} + +//-------------------------------------------------------------------------------------- +// Name: DrawListener() +// Desc: Draws the emitter +//-------------------------------------------------------------------------------------- +void XM_CALLCONV Sample::DrawListener(X3DAUDIO_VECTOR position, DirectX::FXMVECTOR color) +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Draw listener"); + + context->OMSetBlendState(m_states->Opaque(), nullptr, 0xFFFFFFFF); + context->OMSetDepthStencilState(m_states->DepthNone(), 0); + context->RSSetState(m_states->CullNone()); + + m_batchEffect->Apply(context); + + context->IASetInputLayout(m_batchInputLayout.Get()); + + XMVECTOR vout[3]; + + auto rect = m_deviceResources->GetOutputSize(); + + vout[0] = XMVECTORF32{ position.x, position.y - 15.0f, 0.0f, 1.0f }; + vout[1] = XMVECTORF32{ position.x - 15.0f, position.y + 15.0f, 0.0f, 1.0f }; + vout[2] = XMVECTORF32{ position.x + 15.0f, position.y + 15.0f, 0.0f, 1.0f }; + + //Convert to -1,1 space + XMFLOAT3 tempv; + for (int i = 0; i < 3; i++) + { + XMStoreFloat3(&tempv, vout[i]); + + tempv.x = (tempv.x * 2 / rect.right) - 1; + tempv.y = (tempv.y * 2 / rect.bottom) - 1; + + vout[i] = XMLoadFloat3(&tempv); + } + + m_batch->Begin(); + + VertexPositionColor v1(vout[0], color); + VertexPositionColor v2(vout[1], color); + VertexPositionColor v3(vout[2], color); + m_batch->DrawTriangle(v1, v2, v3); + + m_batch->End(); + + PIXEndEvent(context); +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const& ) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + auto bounds = m_deviceResources->GetOutputSize(); + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + auto pad = m_gamePad->GetState(0); + m_gamepadPresent = pad.IsConnected(); + if (m_gamepadPresent) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + float height = 0.f; + if (pad.IsLeftShoulderPressed() && m_X3DEmitter.Position.z + height > -c_MaxHeight) + { + height -= 1.0f; + } + + if (pad.IsRightShoulderPressed() && m_X3DEmitter.Position.z + height < c_MaxHeight) + { + height += 1.0f; + } + + if (pad.IsLeftStickPressed()) + { + m_X3DEmitter.Position = X3DAUDIO_VECTOR(float(bounds.right / 2), float((bounds.bottom / 2) - 100), 0); + m_X3DEmitter.Velocity = X3DAUDIO_VECTOR(0, 0, 0); + } + + if (pad.IsRightStickPressed()) + { + m_emitterAngle = X3DAUDIO_PI; + } + + float X = -pad.thumbSticks.leftX; + float Y = -pad.thumbSticks.leftY; + m_X3DEmitter.Position = X3DAUDIO_VECTOR(m_X3DEmitter.Position.x - X * c_MoveScale, m_X3DEmitter.Position.y - Y * c_MoveScale, m_X3DEmitter.Position.z + height); + m_X3DEmitter.Velocity = X3DAUDIO_VECTOR(X * c_MoveScale, Y * c_MoveScale, height); + + AdjustFront(-pad.thumbSticks.rightX, &m_X3DEmitter.OrientFront, &m_emitterAngle); + } + else + { + m_gamePadButtons.Reset(); + + //Adjust what direction the emitter is facing + if (kb.D || kb.A) + { + AdjustFront(kb.A ? 1.f : -1.f, &m_X3DEmitter.OrientFront, &m_emitterAngle); + } + + //Adjust emitter height + float height = 0.f; + if (kb.S && (m_X3DEmitter.Position.z + height > -c_MaxHeight)) + { + height -= 1.0f; + } + + if (kb.W && (m_X3DEmitter.Position.z + height < c_MaxHeight)) + { + height += 1.0f; + } + + if (kb.Home) + { + m_X3DEmitter.Position = X3DAUDIO_VECTOR(float(bounds.right / 2), float((bounds.bottom / 2) - 100), 0); + m_X3DEmitter.Velocity = X3DAUDIO_VECTOR(0, 0, 0); + m_emitterAngle = X3DAUDIO_PI; + } + float X = (kb.Right ? -1.f : 0.f) + (kb.Left ? 1.f : 0.f); + float Y = (kb.Up ? -1.f : 0.f) + (kb.Down ? 1.f : 0.f); + m_X3DEmitter.Position = X3DAUDIO_VECTOR(m_X3DEmitter.Position.x - X * c_MoveScale, m_X3DEmitter.Position.y - Y * c_MoveScale, m_X3DEmitter.Position.z + height); + m_X3DEmitter.Velocity = X3DAUDIO_VECTOR(X * c_MoveScale, Y * c_MoveScale, height); + } + + if (m_X3DEmitter.Position.x < float(bounds.left)) + { + m_X3DEmitter.Position.x = float(bounds.left); + m_X3DEmitter.Velocity.x = 0; + } + else if (m_X3DEmitter.Position.x > float(bounds.right)) + { + m_X3DEmitter.Position.x = float(bounds.right); + m_X3DEmitter.Velocity.x = 0; + } + + if (m_X3DEmitter.Position.y < float(bounds.top)) + { + m_X3DEmitter.Position.y = float(bounds.top); + m_X3DEmitter.Velocity.y = 0; + } + else if (m_X3DEmitter.Position.y > float(bounds.bottom)) + { + m_X3DEmitter.Position.y = float(bounds.bottom); + m_X3DEmitter.Velocity.y = 0; + } + + if (kb.Escape) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + //Adjust reverb setting + if (m_gamePadButtons.dpadUp == GamePad::ButtonStateTracker::PRESSED + || m_keyboardButtons.IsKeyPressed(Keyboard::E)) + { + m_reverbIndex++; + + if (m_reverbIndex >= _countof(g_ReverbPreset)) + { + m_reverbIndex = 0; + } + + SetReverb(m_reverbIndex); + } + else if (m_gamePadButtons.dpadDown == GamePad::ButtonStateTracker::PRESSED + || m_keyboardButtons.IsKeyPressed(Keyboard::Q)) + { + m_reverbIndex--; + + if (m_reverbIndex < 0) + { + m_reverbIndex = _countof(g_ReverbPreset) - 1; + } + + SetReverb(m_reverbIndex); + } + + // Compute positional audio settings + X3DAudioCalculate(m_X3DInstance, &m_X3DListener, &m_X3DEmitter, + X3DAUDIO_CALCULATE_MATRIX | X3DAUDIO_CALCULATE_DOPPLER | X3DAUDIO_CALCULATE_REVERB, + &m_X3DDSPSettings); + + // Update source voice with positional audio settings + m_sourceVoice->SetOutputMatrix(m_masteringVoice, 1, m_deviceDetails.InputChannels, m_X3DDSPSettings.pMatrixCoefficients); + m_sourceVoice->SetFrequencyRatio(m_X3DDSPSettings.DopplerFactor); + + m_sourceVoice->SetOutputMatrix(m_submixVoice, 1, 1, &m_X3DDSPSettings.ReverbLevel); + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + if (m_X3DEmitter.Position.z > 0) + { + // Draw the grid + DrawListener(m_X3DListener.Position, ATG::Colors::White); + DrawGrid(20, 20, ATG::Colors::Green); + + // Draw emitter + DrawEmitter(m_X3DEmitter.pCone, m_X3DEmitter.Position, m_emitterAngle, Colors::Black, (UINT)m_X3DEmitter.CurveDistanceScaler); + DrawCircle(m_X3DEmitter.Position, m_X3DEmitter.CurveDistanceScaler); + } + else + { + // Draw emitter + DrawEmitter(m_X3DEmitter.pCone, m_X3DEmitter.Position, m_emitterAngle, Colors::Black, (UINT)m_X3DEmitter.CurveDistanceScaler); + DrawCircle(m_X3DEmitter.Position, m_X3DEmitter.CurveDistanceScaler); + + // Draw the grid + DrawListener(m_X3DListener.Position, ATG::Colors::White); + DrawGrid(20, 20, ATG::Colors::Green); + } + + auto rect = m_deviceResources->GetOutputSize(); + auto safeRect = SimpleMath::Viewport::ComputeTitleSafeArea(rect.right, rect.bottom); + std::wstring tempString; + + XMFLOAT2 pos(float(safeRect.left), float(safeRect.top)); + + m_spriteBatch->Begin(); + m_font->DrawString(m_spriteBatch.get(), L"SimplePlay3DSound", pos, ATG::Colors::White); + pos.y += m_font->GetLineSpacing() * 1.1f; + + tempString = L"Listener ( " + std::to_wstring(m_X3DListener.Position.x) + L", " + std::to_wstring(m_X3DListener.Position.y) + L", " + + std::to_wstring(m_X3DListener.Position.z) + L") Angle: " + std::to_wstring(m_listenerAngle) + L" rad"; + m_font->DrawString(m_spriteBatch.get(), tempString.c_str(), pos, ATG::Colors::White); + pos.y += m_font->GetLineSpacing() * 1.1f; + + tempString = L"Emitter ( " + std::to_wstring(m_X3DEmitter.Position.x) + L", " + std::to_wstring(m_X3DEmitter.Position.y) + L", " + + std::to_wstring(m_X3DEmitter.Position.z) + L") Angle: " + std::to_wstring(m_emitterAngle) + L" rad"; + m_font->DrawString(m_spriteBatch.get(), tempString.c_str(), pos, ATG::Colors::White); + pos.y += m_font->GetLineSpacing() * 1.1f; + + tempString = L"Reverb: " + std::wstring(g_PresetNames[m_reverbIndex]); + m_font->DrawString(m_spriteBatch.get(), tempString.c_str(), pos, ATG::Colors::White); + + const wchar_t* legend = m_gamepadPresent + ? L"[LThumb] Move [RThumb] Rotate [LB]/[RB] Adjust height [DPad] Reverb" + : L"Arrows Keys: Move A/D: Rotate W/S: Adjust height Q/E: Reverb"; + + DX::DrawControllerString(m_spriteBatch.get(), m_font.get(), m_ctrlFont.get(), legend, + XMFLOAT2(float(safeRect.left), float(safeRect.bottom) - m_font->GetLineSpacing()), + ATG::Colors::LightGrey); + + m_spriteBatch->End(); + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + + context->ClearRenderTargetView(renderTarget, ATG::Colors::Background); + + context->OMSetRenderTargets(1, &renderTarget, nullptr); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + auto device = m_deviceResources->GetD3DDevice(); + + m_spriteBatch = std::make_unique(context); + + m_font = std::make_unique(device, L"SegoeUI_18.spritefont"); + m_ctrlFont = std::make_unique(device, L"XboxOneControllerLegendSmall.spritefont"); + + m_states = std::make_unique(device); + + m_batchEffect = std::make_unique(device); + m_batchEffect->SetVertexColorEnabled(true); + + { + void const* shaderByteCode; + size_t byteCodeLength; + + m_batchEffect->GetVertexShaderBytecode(&shaderByteCode, &byteCodeLength); + + DX::ThrowIfFailed( + device->CreateInputLayout(VertexPositionColor::InputElements, + VertexPositionColor::InputElementCount, + shaderByteCode, byteCodeLength, + m_batchInputLayout.ReleaseAndGetAddressOf()) + ); + } + + m_batch = std::make_unique>(m_deviceResources->GetD3DDeviceContext()); + + // Load textures + DX::ThrowIfFailed( + CreateDDSTextureFromFile(device, L"circle.dds", nullptr, m_circleTexture.ReleaseAndGetAddressOf()) + ); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + m_spriteBatch->SetRotation(m_deviceResources->GetRotation()); + + //Start the listener and emitter in the middle of the screen + auto rect = m_deviceResources->GetOutputSize(); + m_X3DListener.Position = X3DAUDIO_VECTOR(float(rect.right / 2), float(rect.bottom / 2), 0); + m_X3DEmitter.Position = X3DAUDIO_VECTOR(float(rect.right / 2), float((rect.bottom / 2) - 100), 0); +} + +void Sample::OnDeviceLost() +{ + m_spriteBatch.reset(); + m_ctrlFont.reset(); + m_font.reset(); + m_states.reset(); + m_batch.reset(); + m_batchEffect.reset(); + m_circleTexture.Reset(); + m_batchInputLayout.Reset(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion diff --git a/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.h b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.h new file mode 100644 index 0000000000000000000000000000000000000000..0e2a1a8a02ca66a24e6108ef698a1696d347f184 --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.h @@ -0,0 +1,112 @@ +//-------------------------------------------------------------------------------------- +// SimplePlay3DSound.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" +#include "WAVFileReader.h" + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + //Audio functions + void SetReverb(int index); + void SetupEnvironment(); + void PlayFile(const wchar_t* filename); + void AdjustFront(float value, X3DAUDIO_VECTOR *orientFront, float *angle); + + //Draw functions + void XM_CALLCONV DrawGrid(size_t xdivs, size_t ydivs, DirectX::FXMVECTOR color); + void DrawCircle(X3DAUDIO_VECTOR position, float radius); + void XM_CALLCONV DrawEmitter(X3DAUDIO_CONE* cone, X3DAUDIO_VECTOR position, float angle, DirectX::FXMVECTOR color, UINT size); + void XM_CALLCONV DrawListener(X3DAUDIO_VECTOR position, DirectX::FXMVECTOR color); + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + // UI resources. + std::unique_ptr m_deviceResources; + std::unique_ptr> m_batch; + Microsoft::WRL::ComPtr m_circleTexture; + Microsoft::WRL::ComPtr m_batchInputLayout; + std::unique_ptr m_states; + std::unique_ptr m_batchEffect; + std::unique_ptr m_spriteBatch; + std::unique_ptr m_font; + std::unique_ptr m_ctrlFont; + + // Rendering loop timer. + DX::StepTimer m_timer; + + //XAudio2 interfaces + std::unique_ptr m_waveFile; + Microsoft::WRL::ComPtr m_XAudio2; + IXAudio2MasteringVoice* m_masteringVoice; + IXAudio2SourceVoice* m_sourceVoice; + IXAudio2SubmixVoice* m_submixVoice; + Microsoft::WRL::ComPtr m_reverbEffect; + std::unique_ptr m_matrix; + + //X3DAudio values + X3DAUDIO_DISTANCE_CURVE_POINT m_volumePoints[10]; + X3DAUDIO_DISTANCE_CURVE m_volumeCurve; + X3DAUDIO_DISTANCE_CURVE_POINT m_reverbPoints[10]; + X3DAUDIO_DISTANCE_CURVE m_reverbCurve; + X3DAUDIO_HANDLE m_X3DInstance; + X3DAUDIO_LISTENER m_X3DListener; + X3DAUDIO_EMITTER m_X3DEmitter; + X3DAUDIO_DSP_SETTINGS m_X3DDSPSettings; + XAUDIO2_VOICE_DETAILS m_deviceDetails; + X3DAUDIO_CONE m_emitterCone; + + // Game state + int m_reverbIndex; + float m_listenerAngle; + float m_emitterAngle; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; + bool m_gamepadPresent; +}; \ No newline at end of file diff --git a/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.sln b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.sln new file mode 100644 index 0000000000000000000000000000000000000000..23f801a0e1e5fea918c86b337a22491ecb97124b --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimplePlay3DSound", "SimplePlay3DSound.vcxproj", "{7C44D58B-2263-4A61-B9CA-2C8777C34F3A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|ARM.ActiveCfg = Debug|ARM + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|ARM.Build.0 = Debug|ARM + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|ARM.Deploy.0 = Debug|ARM + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|x64.ActiveCfg = Debug|x64 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|x64.Build.0 = Debug|x64 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|x64.Deploy.0 = Debug|x64 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|x86.ActiveCfg = Debug|Win32 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|x86.Build.0 = Debug|Win32 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Debug|x86.Deploy.0 = Debug|Win32 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|ARM.ActiveCfg = Release|ARM + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|ARM.Build.0 = Release|ARM + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|ARM.Deploy.0 = Release|ARM + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|x64.ActiveCfg = Release|x64 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|x64.Build.0 = Release|x64 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|x64.Deploy.0 = Release|x64 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|x86.ActiveCfg = Release|Win32 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|x86.Build.0 = Release|Win32 + {7C44D58B-2263-4A61-B9CA-2C8777C34F3A}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.vcxproj b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..4465f3a3efd6c4a384e99d12b6a648372d468dcc --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.vcxproj @@ -0,0 +1,282 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {7c44d58b-2263-4a61-b9ca-2c8777c34f3a} + DirectXApp + SimplePlay3DSound + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SimplePlay3DSound_TemporaryKey.pfx + + + + xaudio2.lib; d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + xaudio2.lib; d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + xaudio2.lib; d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + xaudio2.lib; d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + xaudio2.lib; d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + xaudio2.lib; d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + Designer + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.vcxproj.filters b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..64d3f913abb20a28d4932808007b6abb49e8ffad --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound.vcxproj.filters @@ -0,0 +1,83 @@ + + + + + 1f419b0f-c24a-42c7-aabf-b166528fed38 + + + eb3c1cf4-f0f4-45e8-b5d1-c29940766aba + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {10ae51c0-7081-4e55-9ca3-4a9074bfb6a1} + + + + + + + Common + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + ATG Tool Kit + + + + + + + + Common + + + ATG Tool Kit + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + Assets + + + + Assets + + + + + Assets + + + \ No newline at end of file diff --git a/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound_TemporaryKey.pfx b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..1c2c89daed79201ba53eeaa2878eabccdd028125 Binary files /dev/null and b/Samples/Audio/SimplePlay3DSoundUWP/SimplePlay3DSound_TemporaryKey.pfx differ diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/StepTimer.h b/Samples/Audio/SimplePlay3DSoundUWP/StepTimer.h similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/StepTimer.h rename to Samples/Audio/SimplePlay3DSoundUWP/StepTimer.h diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/pch.cpp b/Samples/Audio/SimplePlay3DSoundUWP/pch.cpp similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/pch.cpp rename to Samples/Audio/SimplePlay3DSoundUWP/pch.cpp diff --git a/Samples/Audio/SimplePlay3DSoundUWP/pch.h b/Samples/Audio/SimplePlay3DSoundUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..30171a56727351cf9374d2b8b2219197ea78032b --- /dev/null +++ b/Samples/Audio/SimplePlay3DSoundUWP/pch.h @@ -0,0 +1,78 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "CommonStates.h" +#include "DDSTextureLoader.h" +#include "Effects.h" +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" +#include "PrimitiveBatch.h" +#include "SimpleMath.h" +#include "SpriteBatch.h" +#include "SpriteFont.h" +#include "VertexTypes.h" + +#include +#include +#include + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/Audio/SimplePlaySoundUWP/DeviceResources.cpp b/Samples/Audio/SimplePlaySoundUWP/DeviceResources.cpp index ba23c3af40f17d50564addcc12fe1337f018fa22..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/Audio/SimplePlaySoundUWP/DeviceResources.cpp +++ b/Samples/Audio/SimplePlaySoundUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/Audio/SimplePlaySoundUWP/Package.appxmanifest b/Samples/Audio/SimplePlaySoundUWP/Package.appxmanifest index 90db57ed840e80a14582519923f12a6ae51a61a0..ef74b2a03d138f34a2da9b2f6e0a68ce3c1c2581 100644 --- a/Samples/Audio/SimplePlaySoundUWP/Package.appxmanifest +++ b/Samples/Audio/SimplePlaySoundUWP/Package.appxmanifest @@ -8,14 +8,14 @@ SimplePlaySound - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Audio/SimplePlaySoundUWP/SimplePlaySound.vcxproj b/Samples/Audio/SimplePlaySoundUWP/SimplePlaySound.vcxproj index 2ad9db9aa48a8922b689d1227e1c14a5fcc26a2b..e10b2f331d4116223089b2141eb3e301f280afc2 100644 --- a/Samples/Audio/SimplePlaySoundUWP/SimplePlaySound.vcxproj +++ b/Samples/Audio/SimplePlaySoundUWP/SimplePlaySound.vcxproj @@ -1,4 +1,4 @@ - + @@ -255,4 +255,4 @@ - + \ No newline at end of file diff --git a/Samples/Graphics/SimpleTextureUWP/Assets/Logo.png b/Samples/Audio/SimpleWASAPICaptureUWP/Assets/Logo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Assets/Logo.png rename to Samples/Audio/SimpleWASAPICaptureUWP/Assets/Logo.png diff --git a/Samples/Graphics/SimpleTextureUWP/Assets/SmallLogo.png b/Samples/Audio/SimpleWASAPICaptureUWP/Assets/SmallLogo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Assets/SmallLogo.png rename to Samples/Audio/SimpleWASAPICaptureUWP/Assets/SmallLogo.png diff --git a/Samples/Graphics/SimpleTextureUWP/Assets/SplashScreen.png b/Samples/Audio/SimpleWASAPICaptureUWP/Assets/SplashScreen.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Assets/SplashScreen.png rename to Samples/Audio/SimpleWASAPICaptureUWP/Assets/SplashScreen.png diff --git a/Samples/Graphics/SimpleTextureUWP/Assets/StoreLogo.png b/Samples/Audio/SimpleWASAPICaptureUWP/Assets/StoreLogo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Assets/StoreLogo.png rename to Samples/Audio/SimpleWASAPICaptureUWP/Assets/StoreLogo.png diff --git a/Samples/Graphics/SimpleTextureUWP/Assets/WideLogo.png b/Samples/Audio/SimpleWASAPICaptureUWP/Assets/WideLogo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Assets/WideLogo.png rename to Samples/Audio/SimpleWASAPICaptureUWP/Assets/WideLogo.png diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/CBuffer.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/CBuffer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..788b8063f9e4b1dc40b68045925ec930b3889f5b --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/CBuffer.cpp @@ -0,0 +1,193 @@ +//-------------------------------------------------------------------------------------- +// CBuffer.cpp +// +// Circular buffer +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "CBuffer.h" + +// +// CBuffer() +// +CBuffer::CBuffer(uint32_t size) +{ + ZeroMemory( &m_sourceFormat, sizeof( WAVEFORMATEX ) ); + ZeroMemory( &m_renderFormat, sizeof( WAVEFORMATEX ) ); + AllocateSize(size); + m_front = 0; + m_back = 0; + m_sourceSampleSize = 0; + m_renderSampleSize = 0; + + if (!InitializeCriticalSectionEx(&m_critSec, 0, 0)) + { + DX::ThrowIfFailed(HRESULT_FROM_WIN32(GetLastError())); + } +} + + +// +// ~CBuffer() +// +CBuffer::~CBuffer() +{ + ZeroMemory( &m_buffer, sizeof(m_size ) ); + ZeroMemory( &m_sourceFormat, sizeof( WAVEFORMATEX ) ); + ZeroMemory( &m_renderFormat, sizeof( WAVEFORMATEX ) ); + DeleteCriticalSection( &m_critSec ); +} + + +//-------------------------------------------------------------------------------------- +// Name: AllocateSize +// Desc: Allocates buffer +//-------------------------------------------------------------------------------------- +void CBuffer::AllocateSize(uint32_t inSize) +{ + m_buffer = new BYTE[inSize]; + ZeroMemory(m_buffer, inSize); + m_size = inSize; + m_free = inSize; +} + + +//-------------------------------------------------------------------------------------- +// Name: SetSourceFormat +// Desc: Sets the format of the data entering the buffering +//-------------------------------------------------------------------------------------- +void CBuffer::SetSourceFormat(WAVEFORMATEX* sourceWfx) +{ + CopyMemory(&m_sourceFormat, sourceWfx, sizeof( WAVEFORMATEX)); + SetFormatCalculations(); +} + + +//-------------------------------------------------------------------------------------- +// Name: SetRenderFormat +// Desc: Sets the format of the data stored in the buffer +//-------------------------------------------------------------------------------------- +void CBuffer::SetRenderFormat(WAVEFORMATEX* renderWfx) +{ + CopyMemory(&m_renderFormat, renderWfx, sizeof( WAVEFORMATEX)); + SetFormatCalculations(); + + //We can't trust the format in the buffer, so empty it + m_front = 0; + m_back = 0; +} + + +//-------------------------------------------------------------------------------------- +// Name: SetFormatCalculations +// Desc: Sets the format of the data stored in the buffer +//-------------------------------------------------------------------------------------- +void CBuffer::SetFormatCalculations() +{ + if(m_sourceFormat.cbSize != 0 && m_renderFormat.cbSize != 0) + { + if(m_sourceFormat.wBitsPerSample != 32 || m_renderFormat.wBitsPerSample != 32) + { + //We only support 32bit + m_sourceSampleSize = 0; + m_renderSampleSize = 0; + } + else + { + m_sourceSampleSize = m_sourceFormat.nChannels * m_sourceFormat.nBlockAlign; + m_renderSampleSize = m_renderFormat.nChannels * m_renderFormat.nBlockAlign; + } + } +} + + +//-------------------------------------------------------------------------------------- +// Name: GetCaptureBuffer +// Desc: Gets data from the buffer +//-------------------------------------------------------------------------------------- +void CBuffer::GetCaptureBuffer(uint32_t numBytesRequested, byte *data) +{ + //Fills the data buffer with data from circular buffer and silent the rest + uint32_t numBytesWritten = 0; + + if(numBytesRequested > GetCurrentUsage() || m_sourceSampleSize == 0 || m_renderSampleSize == 0) + { + return; + } + + EnterCriticalSection( &m_critSec ); + + if(numBytesRequested > m_size - m_front) + { + //We need to circle + CopyMemory(data, m_buffer + m_front, m_size - m_front); + numBytesWritten = m_size - m_front; + m_front = 0; + } + + CopyMemory(data + numBytesWritten, m_buffer + m_front, numBytesRequested - numBytesWritten); + m_front += numBytesRequested - numBytesWritten; + m_free += numBytesRequested; + + if(m_front >= m_size) + { + m_front -= m_size; + } + + LeaveCriticalSection( &m_critSec ); +} + + +//-------------------------------------------------------------------------------------- +// Name: SetCaptureBuffer +// Desc: Add data to buffer +//-------------------------------------------------------------------------------------- +void CBuffer::SetCaptureBuffer(uint32_t numBytesGiven, byte *data) +{ + if(m_sourceSampleSize == 0 || m_renderSampleSize == 0) + { + return; + } + + EnterCriticalSection( &m_critSec ); + uint32_t numSamplesGiven = numBytesGiven/m_sourceSampleSize; + + for( uint32_t sample = 0; sample < numSamplesGiven; sample++ ) + { + //Add mono sample + CopyMemory(m_buffer + m_back, data + (sample*m_sourceSampleSize), m_sourceSampleSize); + m_back += m_sourceSampleSize; + + if(m_back >= m_size) + { + m_back -= m_size; + } + + //Add blank space for any additional channels + for(DWORD channels = 1; channels < m_renderFormat.nChannels; channels++) + { + ZeroMemory(m_buffer + m_back, m_sourceSampleSize); + m_back += m_sourceSampleSize; + + if(m_back >= m_size) + { + m_back -= m_size; + } + } + } + + if(m_renderSampleSize/m_sourceSampleSize*numBytesGiven > m_free) + { + m_front = m_back; + m_free = 0; + } + else + { + m_free -= numBytesGiven * m_renderSampleSize/m_sourceSampleSize; + } + + LeaveCriticalSection( &m_critSec ); +} diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/CBuffer.h b/Samples/Audio/SimpleWASAPICaptureUWP/CBuffer.h new file mode 100644 index 0000000000000000000000000000000000000000..6a1a6994bdec9150778790ae54f478ba9fbe7cca --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/CBuffer.h @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------------------- +// CBuffer.h +// +// Circular buffer +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include +#include "Common.h" + +class CBuffer +{ +public: + CBuffer(uint32_t size); + virtual ~CBuffer(); + + void GetCaptureBuffer(uint32_t numBytesRequested, byte *data); + void SetCaptureBuffer(uint32_t numBytesGiven, byte *data); + + void SetSourceFormat(WAVEFORMATEX* sourceWfx); + void SetRenderFormat(WAVEFORMATEX* renderWfx); + + uint32_t GetCurrentUsage(){ return m_size - m_free;}; + +private: + void AllocateSize(uint32_t inSize); + void SetFormatCalculations(); + + WAVEFORMATEX m_sourceFormat; + WAVEFORMATEX m_renderFormat; + byte* m_buffer; + uint32_t m_size; + uint32_t m_front; + uint32_t m_back; + uint32_t m_free; + CRITICAL_SECTION m_critSec; + int m_sourceSampleSize; + int m_renderSampleSize; +}; diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/Common.h b/Samples/Audio/SimpleWASAPICaptureUWP/Common.h new file mode 100644 index 0000000000000000000000000000000000000000..cecf3e5fd35fe1e70375f241e7aeac1db7719f59 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/Common.h @@ -0,0 +1,172 @@ +//-------------------------------------------------------------------------------------- +// Common.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once +#include +#include +#include +#include + +//using namespace Microsoft::WRL; + +// GUID to ensure both WASAPI clients share a session +static const GUID AUDIOSESSIONGUID = +{ 0xb3954ae8, 0xc3c3, 0x4094,{ 0x82, 0x1c, 0xc7, 0xbd, 0xf4, 0xab, 0x15, 0x8a } }; + +// release and zero out a possible NULL pointer. note this will +// do the release on a temp copy to avoid reentrancy issues that can result from +// callbacks durring the release +template void SafeRelease( __deref_inout_opt T **ppT ) +{ + T *pTTemp = *ppT; // temp copy + *ppT = nullptr; // zero the input + if (pTTemp) + { + pTTemp->Release(); + } +} + +#ifndef SAFE_RELEASE +#define SAFE_RELEASE(x) { SafeRelease(&x); } +#endif + +#ifndef SAFE_DELETE +#define SAFE_DELETE(x) { delete x; x = nullptr; } +#endif + +#ifndef SAFE_ARRAYDELETE +#define SAFE_ARRAYDELETE(x) { delete[] x; x = nullptr; } +#endif + +#ifndef METHODASYNCCALLBACK +#define METHODASYNCCALLBACK(Parent, AsyncCallback, pfnCallback) \ +class Callback##AsyncCallback :\ + public IMFAsyncCallback \ +{ \ +public: \ + Callback##AsyncCallback() : \ + _parent(((Parent*)((BYTE*)this - offsetof(Parent, m_x##AsyncCallback)))), \ + _dwQueueID( MFASYNC_CALLBACK_QUEUE_MULTITHREADED ) \ + { \ + } \ +\ + STDMETHOD_( ULONG, AddRef )() \ + { \ + return _parent->AddRef(); \ + } \ + STDMETHOD_( ULONG, Release )() \ + { \ + return _parent->Release(); \ + } \ + STDMETHOD( QueryInterface )( REFIID riid, void **ppvObject ) \ + { \ + if (riid == IID_IMFAsyncCallback || riid == IID_IUnknown) \ + { \ + (*ppvObject) = this; \ + AddRef(); \ + return S_OK; \ + } \ + *ppvObject = NULL; \ + return E_NOINTERFACE; \ + } \ + STDMETHOD( GetParameters )( \ + /* [out] */ __RPC__out DWORD *pdwFlags, \ + /* [out] */ __RPC__out DWORD *pdwQueue) \ + { \ + *pdwFlags = 0; \ + *pdwQueue = _dwQueueID; \ + return S_OK; \ + } \ + STDMETHOD( Invoke )( /* [out] */ __RPC__out IMFAsyncResult * pResult ) \ + { \ + _parent->pfnCallback( pResult ); \ + return S_OK; \ + } \ + void SetQueueID( DWORD dwQueueID ) { _dwQueueID = dwQueueID; } \ +\ +protected: \ + Parent* _parent; \ + DWORD _dwQueueID; \ + \ +} m_x##AsyncCallback; +#endif + +// +// CAsyncState +// +// Used to maintain state during MF Work Item callbacks +class CAsyncState : + public Microsoft::WRL::RuntimeClass, IUnknown> +{ +public: + CAsyncState( Platform::Array^ data, uint32_t size ) : + m_Data(data), + m_Size(size) + { + }; + +public: + Platform::Array^ m_Data; + uint32_t m_Size; + +private: + virtual ~CAsyncState() {}; +}; + +struct RenderBuffer +{ + uint32_t BufferSize; + uint32_t BytesFilled; + BYTE *Buffer; + RenderBuffer *Next; + + RenderBuffer() : + BufferSize(0), + BytesFilled(0), + Buffer( nullptr ), + Next( nullptr ) + { + } + + ~RenderBuffer() + { + SAFE_ARRAYDELETE( Buffer ); + } +}; + +enum RenderSampleType +{ + SampleTypeUnknown, + SampleTypeFloat, + SampleType16BitPCM, +}; + +// +// CalculateMixFormatType() +// +// Determine IEEE Float or PCM samples based on media type +// +inline RenderSampleType CalculateMixFormatType( WAVEFORMATEX *wfx ) +{ + if ( (wfx->wFormatTag == WAVE_FORMAT_PCM) || + ( (wfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE) && + (reinterpret_cast(wfx)->SubFormat == KSDATAFORMAT_SUBTYPE_PCM) ) ) + { + if (wfx->wBitsPerSample == 16) + { + return RenderSampleType::SampleType16BitPCM; + } + } + else if ( (wfx->wFormatTag == WAVE_FORMAT_IEEE_FLOAT) || + ( (wfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE) && + (reinterpret_cast(wfx)->SubFormat == KSDATAFORMAT_SUBTYPE_IEEE_FLOAT) ) ) + { + return RenderSampleType::SampleTypeFloat; + } + + return RenderSampleType::SampleTypeUnknown; +} diff --git a/Samples/Graphics/SimpleTextureUWP/DeviceResources.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/DeviceResources.cpp similarity index 91% rename from Samples/Graphics/SimpleTextureUWP/DeviceResources.cpp rename to Samples/Audio/SimpleWASAPICaptureUWP/DeviceResources.cpp index 49dc516d686e80f874ab22d77eaa60873118d670..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/Graphics/SimpleTextureUWP/DeviceResources.cpp +++ b/Samples/Audio/SimpleWASAPICaptureUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -352,29 +351,32 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() m_d3dRenderTargetView.ReleaseAndGetAddressOf() )); - // Create a depth stencil view for use with 3D rendering if needed. - CD3D11_TEXTURE2D_DESC depthStencilDesc( - m_depthBufferFormat, - backBufferWidth, - backBufferHeight, - 1, // This depth stencil view has only one texture. - 1, // Use a single mipmap level. - D3D11_BIND_DEPTH_STENCIL - ); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); - ComPtr depthStencil; - DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( - &depthStencilDesc, - nullptr, - depthStencil.GetAddressOf() - )); + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); - CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); - DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( - depthStencil.Get(), - &depthStencilViewDesc, - m_d3dDepthStencilView.ReleaseAndGetAddressOf() - )); + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } // Set the 3D rendering viewport to target the entire window. m_screenViewport = CD3D11_VIEWPORT( @@ -522,8 +524,11 @@ void DX::DeviceResources::Present() // overwritten. If dirty or scroll rects are used, this call should be removed. m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); - // Discard the contents of the depth stencil. - m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } // If the device was removed either by a disconnection or a driver upgrade, we // must recreate all device resources. @@ -575,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/Graphics/SimpleTextureUWP/DeviceResources.h b/Samples/Audio/SimpleWASAPICaptureUWP/DeviceResources.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/DeviceResources.h rename to Samples/Audio/SimpleWASAPICaptureUWP/DeviceResources.h diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/DeviceState.h b/Samples/Audio/SimpleWASAPICaptureUWP/DeviceState.h new file mode 100644 index 0000000000000000000000000000000000000000..0e1411e7d93a0c966f76d14bc6feab7238723190 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/DeviceState.h @@ -0,0 +1,86 @@ +//-------------------------------------------------------------------------------------- +// DeviceState.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// NB: All states >= DeviceStateInitialized will allow some methods +// to be called successfully on the Audio Client +enum class DeviceState +{ + DeviceStateUnInitialized, + DeviceStateInError, + DeviceStateDiscontinuity, + DeviceStateFlushing, + DeviceStateActivated, + DeviceStateInitialized, + DeviceStateStarting, + DeviceStatePlaying, + DeviceStateCapturing, + DeviceStatePausing, + DeviceStatePaused, + DeviceStateStopping, + DeviceStateStopped +}; + +// Class for DeviceStateChanged events +ref class DeviceStateChangedEventArgs sealed +{ +internal: + DeviceStateChangedEventArgs(DeviceState newState, HRESULT hr) : + m_DeviceState(newState), + m_hr(hr) + {}; + + property DeviceState State + { + DeviceState get() { return m_DeviceState; } + }; + + property int hr + { + int get() { return m_hr; } + } + +private: + DeviceState m_DeviceState; + HRESULT m_hr; +}; + +// DeviceStateChanged delegate +delegate void DeviceStateChangedHandler(Platform::Object^ sender, DeviceStateChangedEventArgs^ e); + +// DeviceStateChanged Event +ref class DeviceStateChangedEvent sealed +{ +public: + DeviceStateChangedEvent() : + m_DeviceState(DeviceState::DeviceStateUnInitialized) + {}; + + +internal: + DeviceState GetState() { return m_DeviceState; }; + + void SetState(DeviceState newState, HRESULT hr, bool FireEvent) { + if (m_DeviceState != newState) + { + m_DeviceState = newState; + + if (FireEvent) + { + DeviceStateChangedEventArgs^ e = ref new DeviceStateChangedEventArgs(m_DeviceState, hr); + StateChangedEvent(this, e); + } + } + }; + +public: + static event DeviceStateChangedHandler^ StateChangedEvent; + +private: + DeviceState m_DeviceState; +}; diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/Main.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6b0b626a8fc1ab5edf759705bcfb0c60b28a5940 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleWASAPICaptureUWP.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/Package.appxmanifest b/Samples/Audio/SimpleWASAPICaptureUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..dd0502bf96e6db9a70f99cd84f5c97e3b6e678c6 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/Package.appxmanifest @@ -0,0 +1,29 @@ + + + + + + SimpleWASAPICaptureUWP + jeball + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/Readme.docx b/Samples/Audio/SimpleWASAPICaptureUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..20419062064afe64d9fb8681e7fa40c27d4ed206 Binary files /dev/null and b/Samples/Audio/SimpleWASAPICaptureUWP/Readme.docx differ diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c62af6f2f1f27237d8263c8e1564f8a7e2f47e78 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.cpp @@ -0,0 +1,442 @@ +//-------------------------------------------------------------------------------------- +// SimpleWASAPICaptureUWP.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleWASAPICaptureUWP.h" +#include "ATGColors.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; +using namespace Windows::Devices::Enumeration; +using namespace Windows::Media::Devices; +using namespace Windows::Foundation; + +Sample::Sample() +{ + m_deviceResources = std::make_unique(); + m_deviceResources->RegisterDeviceNotify(this); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); + + // Initialize MF + HRESULT hr = MFStartup(MF_VERSION, MFSTARTUP_LITE); + DX::ThrowIfFailed(hr); + + m_readInput = true; + m_currentId = nullptr; + m_isRendererSet = false; + + // Set up device watchers for audio capture devices + m_captureWatcher = DeviceInformation::CreateWatcher(Windows::Media::Devices::MediaDevice::GetAudioCaptureSelector()); + + m_captureWatcher->Added += ref new TypedEventHandler([=](DeviceWatcher ^source, DeviceInformation ^device) + { + //Just add this to our local device list + m_captureDevices.emplace_back(device); + }); + + m_captureWatcher->Removed += ref new TypedEventHandler([=](DeviceWatcher ^source, DeviceInformationUpdate ^device) + { + bool deviceChanged = false; + + //Find and delete the device from our local list + if (m_captureDevices.size() == 1) + { + //This is our last device + deviceChanged = true; + m_currentId = nullptr; + m_captureDevices.clear(); + } + + for (std::vector::iterator it = m_captureDevices.begin(); it != m_captureDevices.end(); it++) + { + if (device->Id == (*it)->Id) + { + if (m_currentId == device->Id) + { + //We lost the device we were capturing from, so reset + m_currentId = m_captureDevices[0]->Id; + deviceChanged = true; + } + + m_captureDevices.erase(it); + } + } + + if (deviceChanged) + { + if (m_captureInterface->GetDeviceStateEvent()->GetState() == DeviceState::DeviceStateCapturing) + { + //Stop + m_captureInterface->StopCaptureAsync(); + } + + if (m_currentId != nullptr) + { + m_captureInterface->InitializeAudioDeviceAsync(m_currentId); + m_finishInit = true; + } + } + }); + + m_captureWatcher->Start(); + m_finishInit = true; + m_captureBuffer = new CBuffer(32768); + + //Start default capture device + m_currentId = MediaDevice::GetDefaultAudioCaptureId(AudioDeviceRole::Default); + m_captureInterface = Microsoft::WRL::Make(); + m_captureInterface->InitializeAudioDeviceAsync(m_currentId); + + //Start default render device + m_renderInterface = Microsoft::WRL::Make(); + m_renderInterface->InitializeAudioDeviceAsync(); +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const&) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + auto pad = m_gamePad->GetState(0); + if (pad.IsConnected()) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + } + else + { + m_gamePadButtons.Reset(); + } + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + if (kb.Escape) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + if (m_finishInit) + { + if (m_currentId == nullptr) + { + if (m_captureWatcher->Status == DeviceWatcherStatus::EnumerationCompleted) + { + m_currentId = MediaDevice::GetDefaultAudioCaptureId(AudioDeviceRole::Default); + + m_captureInterface = Microsoft::WRL::Make(); + m_captureInterface->InitializeAudioDeviceAsync(m_currentId); + } + } + else + { + if (m_renderInterface->GetDeviceStateEvent()->GetState() == DeviceState::DeviceStateInitialized) + { + m_renderFormat = m_renderInterface->GetMixFormat(); + m_renderInterface->StartPlaybackAsync(m_captureBuffer); + m_isRendererSet = true; + } + + if (m_isRendererSet && m_captureInterface->GetDeviceStateEvent()->GetState() == DeviceState::DeviceStateInitialized) + { + m_captureBuffer->SetSourceFormat(m_captureInterface->GetMixFormat()); + m_captureBuffer->SetRenderFormat(m_renderFormat); + m_captureInterface->StartCaptureAsync(m_captureBuffer); + + m_finishInit = false; + } + } + } + + int newDeviceIndex = -1; + + // Account for UI input + if (m_readInput && m_captureDevices.size() > 1) + { + if (pad.IsDPadUpPressed() || kb.Up) + { + m_readInput = false; + + for (uint32_t i = 0; i < m_captureDevices.size(); i++) + { + if (m_captureDevices[i]->Id == m_currentId) + { + if (i == 0) + { + newDeviceIndex = (int)m_captureDevices.size() - 1; + } + else + { + newDeviceIndex = i-1; + } + break; + } + } + } + else if (pad.IsDPadDownPressed() || kb.Down) + { + m_readInput = false; + + for (uint32_t i = 0; i < m_captureDevices.size(); i++) + { + if (m_captureDevices[i]->Id == m_currentId) + { + if (i == m_captureDevices.size() - 1) + { + newDeviceIndex = 0; + } + else + { + newDeviceIndex = i+1; + } + break; + } + } + } + + if(newDeviceIndex > -1) + { + //A new device has been selected, so stop the old one and init the new one + if (m_captureInterface->GetDeviceStateEvent()->GetState() == DeviceState::DeviceStateCapturing) + { + //Stop + m_captureInterface->StopCaptureAsync(); + } + + m_currentId = m_captureDevices[newDeviceIndex]->Id; + m_captureInterface->InitializeAudioDeviceAsync(m_currentId); + m_finishInit = true; + } + } + else + { + if (!pad.IsDPadUpPressed() && !kb.Up && !pad.IsDPadDownPressed() && !kb.Down) + { + m_readInput = true; + } + } + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + auto rect = m_deviceResources->GetOutputSize(); + auto safeRect = SimpleMath::Viewport::ComputeTitleSafeArea(rect.right, rect.bottom); + + XMFLOAT2 pos(float(safeRect.left), float(safeRect.top)); + wchar_t rateString[32]; + + m_spriteBatch->Begin(); + + m_font->DrawString(m_spriteBatch.get(), L"Audio captured from the selected mic is looped to the default output", pos, ATG::Colors::OffWhite); + pos.y += m_font->GetLineSpacing() * 1.f; + m_font->DrawString(m_spriteBatch.get(), L"Note that no sample conversion is done!", pos, ATG::Colors::OffWhite); + pos.y += m_font->GetLineSpacing() * 1.6f; + + // Draw the sample rates + swprintf(rateString, 32, L"Render rate: %dHz", m_renderInterface->GetMixFormat()->nSamplesPerSec); + m_font->DrawString(m_spriteBatch.get(), rateString, pos, ATG::Colors::Orange); + pos.y += m_font->GetLineSpacing() * 1.f; + + if (m_captureDevices.size() == 0) + { + swprintf(rateString, 32, L"Capture rate: N/A"); + } + else + { + swprintf(rateString, 32, L"Capture rate: %dHz", m_captureInterface->GetMixFormat()->nSamplesPerSec); + } + + m_font->DrawString(m_spriteBatch.get(), rateString, pos, ATG::Colors::Orange); + pos.y += m_font->GetLineSpacing() * 1.5f; + + m_font->DrawString(m_spriteBatch.get(), L"Select your capture device:", pos, ATG::Colors::OffWhite); + pos.y += m_font->GetLineSpacing() * 1.f; + + if (m_captureDevices.size() == 0) + { + m_font->DrawString(m_spriteBatch.get(), L"No capture devices!", pos, ATG::Colors::Orange); + } + else + { + // Draw list of capture devices + for (std::vector::iterator it = m_captureDevices.begin(); it != m_captureDevices.end(); it++) + { + if ((*it)->Id == m_currentId) + { + pos.x = float(safeRect.left); + m_font->DrawString(m_spriteBatch.get(), L"> ", pos, ATG::Colors::Green); + } + + pos.x = float(safeRect.left + 36); + m_font->DrawString(m_spriteBatch.get(), (*it)->Name->Data(), pos, ATG::Colors::Green); + pos.y += m_font->GetLineSpacing() * 1.1f; + } + } + + m_spriteBatch->End(); + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + + context->ClearRenderTargetView(renderTarget, ATG::Colors::Background); + + context->OMSetRenderTargets(1, &renderTarget, nullptr); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ + if (m_captureInterface->GetDeviceStateEvent()->GetState() == DeviceState::DeviceStateCapturing) + { + //Stop + m_captureInterface->StopCaptureAsync(); + } +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + auto device = m_deviceResources->GetD3DDevice(); + + m_spriteBatch = std::make_unique(context); + + m_font = std::make_unique(device, L"SegoeUI_18.spritefont"); + m_font->SetDefaultCharacter(L' '); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + m_spriteBatch->SetRotation(m_deviceResources->GetRotation()); +} + +void Sample::OnDeviceLost() +{ + m_spriteBatch.reset(); + m_font.reset(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.h b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.h new file mode 100644 index 0000000000000000000000000000000000000000..5b5fa31930f78efa2ec679646b285b48f50d48c5 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.h @@ -0,0 +1,84 @@ +//-------------------------------------------------------------------------------------- +// SimpleWASAPICaptureUWP.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" +#include "WASAPICapture.h" +#include "WASAPIRenderer.h" +#include + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + // Device resources. + std::unique_ptr m_deviceResources; + + // Render objects + std::unique_ptr m_spriteBatch; + std::unique_ptr m_font; + + // WASAPI objects + Microsoft::WRL::ComPtr m_captureInterface; + Microsoft::WRL::ComPtr m_renderInterface; + std::vector m_captureDevices; + Windows::Devices::Enumeration::DeviceWatcher^ m_captureWatcher; + Platform::String^ m_currentId; + CBuffer* m_captureBuffer; + WAVEFORMATEX* m_renderFormat; + + // Rendering loop timer. + DX::StepTimer m_timer; + + bool m_readInput; + bool m_finishInit; + bool m_isRendererSet; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; +}; \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.sln b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.sln new file mode 100644 index 0000000000000000000000000000000000000000..44028f0e453a48d77c79786bb1a79b4362c239c9 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimpleWASAPICaptureUWP", "SimpleWASAPICaptureUWP.vcxproj", "{A3716BDF-E40A-4992-84A8-7EA718921140}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|ARM.ActiveCfg = Debug|ARM + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|ARM.Build.0 = Debug|ARM + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|ARM.Deploy.0 = Debug|ARM + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|x64.ActiveCfg = Debug|x64 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|x64.Build.0 = Debug|x64 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|x64.Deploy.0 = Debug|x64 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|x86.ActiveCfg = Debug|Win32 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|x86.Build.0 = Debug|Win32 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Debug|x86.Deploy.0 = Debug|Win32 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|ARM.ActiveCfg = Release|ARM + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|ARM.Build.0 = Release|ARM + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|ARM.Deploy.0 = Release|ARM + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|x64.ActiveCfg = Release|x64 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|x64.Build.0 = Release|x64 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|x64.Deploy.0 = Release|x64 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|x86.ActiveCfg = Release|Win32 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|x86.Build.0 = Release|Win32 + {A3716BDF-E40A-4992-84A8-7EA718921140}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.vcxproj b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..418406a92db4252b238b47dec3dc6b2f0a4ea549 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.vcxproj @@ -0,0 +1,275 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {a3716bdf-e40a-4992-84a8-7ea718921140} + DirectXApp + SimpleWASAPICaptureUWP + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SimpleWASAPICaptureUWP_TemporaryKey.pfx + + + + Mfuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + Mfuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + Mfuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + Mfuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + Mfuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + Mfuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + + + Designer + + + true + true + true + true + true + true + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + + + + + \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.vcxproj.filters b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..b4aacde84b468ca3b7663a7c1c22ca1783a99677 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP.vcxproj.filters @@ -0,0 +1,71 @@ + + + + + 7ae04773-f35b-4bba-a8a4-2fb437e5ddbb + + + 34240a1f-fa61-4112-9d3b-1ff1745c3ef9 + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {f2e2be8c-83dd-431c-b13c-244dd6c5a7e7} + + + + + + + Common + + + Common + + + ATG Tool Kit + + + + + + + + + + + + + Common + + + + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + Assets + + + + \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP_TemporaryKey.pfx b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..93b6c92b2513b6956b6530d0e61c0e71c9b454ae Binary files /dev/null and b/Samples/Audio/SimpleWASAPICaptureUWP/SimpleWASAPICaptureUWP_TemporaryKey.pfx differ diff --git a/Samples/Graphics/SimpleTextureUWP/StepTimer.h b/Samples/Audio/SimpleWASAPICaptureUWP/StepTimer.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/StepTimer.h rename to Samples/Audio/SimpleWASAPICaptureUWP/StepTimer.h diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/WASAPICapture.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPICapture.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8d4979d850a702eb1eb94fc761bea1167891d202 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPICapture.cpp @@ -0,0 +1,356 @@ +//-------------------------------------------------------------------------------------- +// WASAPICapture.cpp +// +// Functions to assist in capturing audio in WASAPI +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "WASAPICapture.h" + +using namespace Windows::System::Threading; + +// +// WASAPICapture() +// +WASAPICapture::WASAPICapture() : + m_bufferFrames( 0 ), + m_queueID( 0 ), + m_deviceStateChanged( nullptr ), + m_audioClient( nullptr ), + m_audioCaptureClient( nullptr ), + m_sampleReadyAsyncResult( nullptr ), + m_resampler( nullptr ), + m_buffer( nullptr ) +{ + // Create events for sample ready or user stop + m_sampleReadyEvent = CreateEventEx( nullptr, nullptr, 0, EVENT_ALL_ACCESS ); + if (nullptr == m_sampleReadyEvent) + { + DX::ThrowIfFailed( HRESULT_FROM_WIN32( GetLastError() ) ); + } + + m_deviceStateChanged = ref new DeviceStateChangedEvent(); + if (nullptr == m_deviceStateChanged) + { + DX::ThrowIfFailed( E_OUTOFMEMORY ); + } + + // Register MMCSS work queue + HRESULT hr = S_OK; + DWORD taskID = 0; + + hr = MFLockSharedWorkQueue( L"Capture", 0, &taskID, &m_queueID ); + if (FAILED( hr )) + { + DX::ThrowIfFailed( hr ); + } + + // Set the capture event work queue to use the MMCSS queue + m_xSampleReady.SetQueueID(m_queueID); +} + +// +// ~WASAPICapture() +// +WASAPICapture::~WASAPICapture() +{ + if (INVALID_HANDLE_VALUE != m_sampleReadyEvent) + { + CloseHandle( m_sampleReadyEvent ); + m_sampleReadyEvent = INVALID_HANDLE_VALUE; + } + + MFUnlockWorkQueue( m_queueID ); + + m_deviceStateChanged = nullptr; +} + +// +// InitializeAudioDeviceAsync() +// +// Activates the default audio capture on a asynchronous callback thread. This needs +// to be called from the main UI thread. +// +HRESULT WASAPICapture::InitializeAudioDeviceAsync(Platform::String^ deviceIdString) +{ + IActivateAudioInterfaceAsyncOperation *asyncOp; + HRESULT hr = S_OK; + + // This call must be made on the main UI thread. Async operation will call back to + // IActivateAudioInterfaceCompletionHandler::ActivateCompleted, which must be an agile interface implementation + hr = ActivateAudioInterfaceAsync(deviceIdString->Data(), __uuidof(IAudioClient2), nullptr, this, &asyncOp ); + if (FAILED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + SAFE_RELEASE( asyncOp ); + return hr; +} + +// +// ActivateCompleted() +// +// Callback implementation of ActivateAudioInterfaceAsync function. This will be called on MTA thread +// when results of the activation are available. +// +HRESULT WASAPICapture::ActivateCompleted( IActivateAudioInterfaceAsyncOperation *operation ) +{ + HRESULT hr = S_OK; + HRESULT hrActivateResult = S_OK; + Microsoft::WRL::ComPtr punkAudioInterface = nullptr; + + // Check for a successful activation result + hr = operation->GetActivateResult( &hrActivateResult, &punkAudioInterface ); + if (SUCCEEDED( hr ) && SUCCEEDED( hrActivateResult )) + { + // Get the pointer for the Audio Client + punkAudioInterface.Get()->QueryInterface( IID_PPV_ARGS(&m_audioClient) ); + if (nullptr == m_audioClient) + { + hr = E_FAIL; + goto exit; + } + + hr = m_audioClient->GetMixFormat( &m_mixFormat ); + if (FAILED( hr )) + { + goto exit; + } + + // Initialize the AudioClient in Shared Mode with the user specified buffer + hr = m_audioClient->Initialize( AUDCLNT_SHAREMODE_SHARED, + AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST, + 10000000LL, + 0, + m_mixFormat, + &AUDIOSESSIONGUID); + + if (FAILED( hr )) + { + goto exit; + } + + // Get the maximum size of the AudioClient Buffer + hr = m_audioClient->GetBufferSize( &m_bufferFrames ); + if (FAILED( hr )) + { + goto exit; + } + + // Get the capture client + hr = m_audioClient->GetService( __uuidof(IAudioCaptureClient), (void**) &m_audioCaptureClient ); + if (FAILED( hr )) + { + goto exit; + } + + // Create Async callback for sample events + hr = MFCreateAsyncResult( nullptr, &m_xSampleReady, nullptr, &m_sampleReadyAsyncResult ); + if (FAILED( hr )) + { + goto exit; + } + + // Sets the event handle that the system signals when an audio buffer is ready to be processed by the client + hr = m_audioClient->SetEventHandle( m_sampleReadyEvent ); + if (FAILED( hr )) + { + goto exit; + } + + m_deviceStateChanged->SetState(DeviceState::DeviceStateInitialized, S_OK, true); + } + +exit: + if (FAILED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + // Need to return S_OK + return S_OK; +} + +// +// StartCaptureAsync() +// +// Starts asynchronous capture on a separate thread via MF Work Item +// +HRESULT WASAPICapture::StartCaptureAsync(CBuffer* bufferToUse) +{ + m_buffer = bufferToUse; + + // We should be in the initialzied state if this is the first time through getting ready to capture. + if (m_deviceStateChanged->GetState() == DeviceState::DeviceStateInitialized) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateStarting, S_OK, true ); + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStartCapture, nullptr ); + } + + // We are in the wrong state + return E_NOT_VALID_STATE; +} + +// +// OnStartCapture() +// +// Callback method to start capture +// +HRESULT WASAPICapture::OnStartCapture( IMFAsyncResult* ) +{ + HRESULT hr = S_OK; + + // Start the capture + hr = m_audioClient->Start(); + if (SUCCEEDED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateCapturing, S_OK, true ); + MFPutWaitingWorkItem( m_sampleReadyEvent, 0, m_sampleReadyAsyncResult.Get(), &m_sampleReadyKey ); + } + else + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return S_OK; +} + +// +// StopCaptureAsync() +// +// Stop capture asynchronously via MF Work Item +// +HRESULT WASAPICapture::StopCaptureAsync() +{ + if ( (m_deviceStateChanged->GetState() != DeviceState::DeviceStateCapturing) && + (m_deviceStateChanged->GetState() != DeviceState::DeviceStateInError) ) + { + return E_NOT_VALID_STATE; + } + + m_deviceStateChanged->SetState( DeviceState::DeviceStateStopping, S_OK, true ); + + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStopCapture, nullptr ); +} + +// +// OnStopCapture() +// +// Callback method to stop capture +// +HRESULT WASAPICapture::OnStopCapture( IMFAsyncResult* ) +{ + // Stop capture by cancelling Work Item + // Cancel the queued work item (if any) + if (0 != m_sampleReadyKey) + { + MFCancelWorkItem( m_sampleReadyKey ); + m_sampleReadyKey = 0; + } + + m_audioClient->Stop(); + + m_deviceStateChanged->SetState( DeviceState::DeviceStateFlushing, S_OK, true ); + + m_buffer = nullptr; + + return S_OK; +} + +// +// OnSampleReady() +// +// Callback method when ready to fill sample buffer +// +HRESULT WASAPICapture::OnSampleReady( IMFAsyncResult* ) +{ + HRESULT hr = S_OK; + + hr = OnAudioSampleRequested( false ); + + if (SUCCEEDED( hr )) + { + // Re-queue work item for next sample + if (m_deviceStateChanged->GetState() == DeviceState::DeviceStateCapturing) + { + hr = MFPutWaitingWorkItem( m_sampleReadyEvent, 0, m_sampleReadyAsyncResult.Get(), &m_sampleReadyKey ); + } + } + else + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return hr; +} + +// +// OnAudioSampleRequested() +// +// Called when audio device fires m_sampleReadyEvent +// +HRESULT WASAPICapture::OnAudioSampleRequested( bool isSilence ) +{ + HRESULT hr = S_OK; + uint32_t framesAvailable = 0; + BYTE *data = nullptr; + DWORD captureFlags; + UINT64 devicePosition = 0; + UINT64 QPCPosition = 0; + DWORD bytesToCapture = 0; + + std::lock_guard lck(m_mutex); + + // If this flag is set, we have already queued up the async call to finialize the WAV header + // So we don't want to grab or write any more data that would possibly give us an invalid size + if ( (m_deviceStateChanged->GetState() == DeviceState::DeviceStateStopping) || + (m_deviceStateChanged->GetState() == DeviceState::DeviceStateFlushing) ) + { + goto exit; + } + + // This should equal the buffer size when GetBuffer() is called + hr = m_audioCaptureClient->GetNextPacketSize( &framesAvailable); + if (FAILED( hr )) + { + goto exit; + } + + if (framesAvailable > 0) + { + bytesToCapture = framesAvailable * m_mixFormat->nBlockAlign; + + // Get sample buffer + hr = m_audioCaptureClient->GetBuffer( &data, &framesAvailable, &captureFlags, &devicePosition, &QPCPosition ); + if (FAILED( hr )) + { + goto exit; + } + + if (captureFlags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) + { + // Pass down a discontinuity flag in case the app is interested and reset back to capturing + m_deviceStateChanged->SetState( DeviceState::DeviceStateDiscontinuity, S_OK, true ); + m_deviceStateChanged->SetState( DeviceState::DeviceStateCapturing, S_OK, false ); + } + + // Zero out sample if silence + if ( (captureFlags & AUDCLNT_BUFFERFLAGS_SILENT) || isSilence ) + { + memset( data, 0, framesAvailable * m_mixFormat->nBlockAlign ); + } + + //Update circular buffer + m_buffer->SetCaptureBuffer(bytesToCapture, data); + + // Release buffer back + m_audioCaptureClient->ReleaseBuffer(framesAvailable); + } + +exit: + return hr; +} diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/WASAPICapture.h b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPICapture.h new file mode 100644 index 0000000000000000000000000000000000000000..b6fc979b33d1125418d978467ca91e6eff264276 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPICapture.h @@ -0,0 +1,69 @@ +//-------------------------------------------------------------------------------------- +// WASAPICapture.h +// +// Functions to assist in capturing audio in WASAPI +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include +#include +#include +#include +#include +#include +#include "DeviceState.h" +#include "Common.h" +#include "CBuffer.h" +#include + +#pragma once + +// Primary WASAPI Capture Class +class WASAPICapture : + public Microsoft::WRL::RuntimeClass< Microsoft::WRL::RuntimeClassFlags< Microsoft::WRL::ClassicCom >, Microsoft::WRL::FtmBase, IActivateAudioInterfaceCompletionHandler > +{ +public: + WASAPICapture(); + + HRESULT InitializeAudioDeviceAsync(Platform::String^ deviceIdString); + HRESULT StartCaptureAsync(CBuffer* bufferToUse); + HRESULT StopCaptureAsync(); + + DeviceStateChangedEvent^ GetDeviceStateEvent() { return m_deviceStateChanged; }; + WAVEFORMATEX* GetMixFormat() { return m_mixFormat; } + + METHODASYNCCALLBACK( WASAPICapture, StartCapture, OnStartCapture ); + METHODASYNCCALLBACK( WASAPICapture, StopCapture, OnStopCapture ); + METHODASYNCCALLBACK( WASAPICapture, SampleReady, OnSampleReady ); + + // IActivateAudioInterfaceCompletionHandler + STDMETHOD(ActivateCompleted)( IActivateAudioInterfaceAsyncOperation *operation ); + +private: + ~WASAPICapture(); + + HRESULT OnStartCapture( IMFAsyncResult* ); + HRESULT OnStopCapture( IMFAsyncResult* ); + HRESULT OnSampleReady( IMFAsyncResult* ); + + HRESULT OnAudioSampleRequested( bool isSilence = false ); + +private: + uint32_t m_bufferFrames; + HANDLE m_sampleReadyEvent; + MFWORKITEM_KEY m_sampleReadyKey; + std::mutex m_mutex; + DWORD m_queueID; + + CBuffer* m_buffer; + + WAVEFORMATEX* m_mixFormat; + Microsoft::WRL::ComPtr m_audioClient; + Microsoft::WRL::ComPtr m_audioCaptureClient; + Microsoft::WRL::ComPtr m_sampleReadyAsyncResult; + Microsoft::WRL::ComPtr m_resampler; + + DeviceStateChangedEvent^ m_deviceStateChanged; +}; diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/WASAPIRenderer.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPIRenderer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..09713f896ce7ad6456ff67eb7dd97a6e2b28e11d --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPIRenderer.cpp @@ -0,0 +1,423 @@ +//-------------------------------------------------------------------------------------- +// WASAPIRenderer.cpp +// +// Functions to assist in rendering audio in WASAPI +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "WASAPIRenderer.h" + +using namespace Windows::System::Threading; +using namespace Windows::Media::Devices; + +// +// WASAPIRenderer() +// +WASAPIRenderer::WASAPIRenderer() : + m_bufferFrames( 0 ), + m_deviceStateChanged( nullptr ), + m_audioClient( nullptr ), + m_audioRenderClient( nullptr ), + m_sampleReadyAsyncResult( nullptr ) +{ + // Create events for sample ready or user stop + m_sampleReadyEvent = CreateEventEx( nullptr, nullptr, 0, EVENT_ALL_ACCESS ); + if (nullptr == m_sampleReadyEvent) + { + DX::ThrowIfFailed( HRESULT_FROM_WIN32( GetLastError() ) ); + } + + m_deviceStateChanged = ref new DeviceStateChangedEvent(); + if (nullptr == m_deviceStateChanged) + { + DX::ThrowIfFailed( E_OUTOFMEMORY ); + } +} + +// +// ~WASAPIRenderer() +// +WASAPIRenderer::~WASAPIRenderer() +{ + if (INVALID_HANDLE_VALUE != m_sampleReadyEvent) + { + CloseHandle( m_sampleReadyEvent ); + m_sampleReadyEvent = INVALID_HANDLE_VALUE; + } + + m_deviceStateChanged = nullptr; +} + +// +// InitializeAudioDeviceAsync() +// +// Activates the default audio renderer on a asynchronous callback thread. This needs +// to be called from the main UI thread. +// +HRESULT WASAPIRenderer::InitializeAudioDeviceAsync() +{ + IActivateAudioInterfaceAsyncOperation *asyncOp; + HRESULT hr = S_OK; + + // Get a string representing the Default Audio Device Renderer + Platform::String^ deviceIdString = MediaDevice::GetDefaultAudioRenderId( Windows::Media::Devices::AudioDeviceRole::Default ); + + // This call must be made on the main UI thread. Async operation will call back to + // IActivateAudioInterfaceCompletionHandler::ActivateCompleted, which must be an agile interface implementation + hr = ActivateAudioInterfaceAsync(deviceIdString->Data(), __uuidof(IAudioClient2), nullptr, this, &asyncOp ); + if (FAILED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + SAFE_RELEASE( asyncOp ); + + return hr; +} + +// +// ActivateCompleted() +// +// Callback implementation of ActivateAudioInterfaceAsync function. This will be called on MTA thread +// when results of the activation are available. +// +HRESULT WASAPIRenderer::ActivateCompleted( IActivateAudioInterfaceAsyncOperation *operation ) +{ + HRESULT hr = S_OK; + HRESULT hrActivateResult = S_OK; + Microsoft::WRL::ComPtr punkAudioInterface = nullptr; + + if (m_deviceStateChanged->GetState() != DeviceState::DeviceStateUnInitialized) + { + hr = E_NOT_VALID_STATE; + goto exit; + } + + // Check for a successful activation result + hr = operation->GetActivateResult( &hrActivateResult, &punkAudioInterface ); + if (SUCCEEDED( hr ) && SUCCEEDED( hrActivateResult )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateActivated, S_OK, false ); + + // Get the pointer for the Audio Client + punkAudioInterface.Get()->QueryInterface( IID_PPV_ARGS(&m_audioClient) ); + if( nullptr == m_audioClient ) + { + hr = E_FAIL; + goto exit; + } + + // Configure user defined properties + hr = ConfigureDeviceInternal(); + if (FAILED( hr )) + { + goto exit; + } + + // Initialize the AudioClient in Shared Mode with the user specified buffer + hr = m_audioClient->Initialize( AUDCLNT_SHAREMODE_SHARED, + AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST, + 200000, + 0, + m_mixFormat, + &AUDIOSESSIONGUID); + + if (FAILED( hr )) + { + goto exit; + } + + // Get the maximum size of the AudioClient Buffer + hr = m_audioClient->GetBufferSize( &m_bufferFrames ); + if (FAILED( hr )) + { + goto exit; + } + + // Get the render client + hr = m_audioClient->GetService( __uuidof(IAudioRenderClient), (void**) &m_audioRenderClient ); + if (FAILED( hr )) + { + goto exit; + } + + // Create Async callback for sample events + hr = MFCreateAsyncResult( nullptr, &m_xSampleReady, nullptr, &m_sampleReadyAsyncResult ); + if (FAILED( hr )) + { + goto exit; + } + + // Sets the event handle that the system signals when an audio buffer is ready to be processed by the client + hr = m_audioClient->SetEventHandle( m_sampleReadyEvent ); + if (FAILED( hr )) + { + goto exit; + } + + // Everything succeeded + m_deviceStateChanged->SetState( DeviceState::DeviceStateInitialized, S_OK, true ); + + } + +exit: + + if (FAILED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + // Need to return S_OK + return S_OK; +} + +// +// ConfigureDeviceInternal() +// +// Sets additional playback parameters and opts into hardware offload +// +HRESULT WASAPIRenderer::ConfigureDeviceInternal() +{ + if (m_deviceStateChanged->GetState() != DeviceState::DeviceStateActivated) + { + return E_NOT_VALID_STATE; + } + + HRESULT hr = S_OK; + + AudioClientProperties audioProps = {0}; + audioProps.cbSize = sizeof( AudioClientProperties ); + audioProps.eCategory = AudioCategory_ForegroundOnlyMedia; + + hr = m_audioClient->SetClientProperties( &audioProps ); + if (FAILED( hr )) + { + return hr; + } + + // This sample opens the device is shared mode so we need to find the supported WAVEFORMATEX mix format + hr = m_audioClient->GetMixFormat( &m_mixFormat ); + + return hr; +} + +// +// StartPlaybackAsync() +// +// Starts asynchronous playback on a separate thread via MF Work Item +// +HRESULT WASAPIRenderer::StartPlaybackAsync(CBuffer* bufferToUse) +{ + m_buffer = bufferToUse; + + // We should be stopped if the user stopped playback, or we should be + // initialzied if this is the first time through getting ready to playback. + if ( (m_deviceStateChanged->GetState() == DeviceState::DeviceStateStopped) || + (m_deviceStateChanged->GetState() == DeviceState::DeviceStateInitialized) ) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateStarting, S_OK, true ); + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStartPlayback, nullptr ); + } + else if (m_deviceStateChanged->GetState() == DeviceState::DeviceStatePaused) + { + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStartPlayback, nullptr ); + } + + // Otherwise something else happened + return E_FAIL; +} + +// +// OnStartPlayback() +// +// Callback method to start playback +// +HRESULT WASAPIRenderer::OnStartPlayback( IMFAsyncResult* ) +{ + HRESULT hr = S_OK; + + // Pre-Roll the buffer with silence + hr = OnAudioSampleRequested( true ); + if (FAILED( hr )) + { + goto exit; + } + + // Actually start the playback + hr = m_audioClient->Start(); + if (SUCCEEDED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStatePlaying, S_OK, true ); + hr = MFPutWaitingWorkItem( m_sampleReadyEvent, 0, m_sampleReadyAsyncResult.Get(), &m_sampleReadyKey ); + } + +exit: + if (FAILED( hr )) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return S_OK; +} + +// +// StopPlaybackAsync() +// +// Stop playback asynchronously via MF Work Item +// +HRESULT WASAPIRenderer::StopPlaybackAsync() +{ + if ( (m_deviceStateChanged->GetState() != DeviceState::DeviceStatePlaying) && + (m_deviceStateChanged->GetState() != DeviceState::DeviceStatePaused) && + (m_deviceStateChanged->GetState() != DeviceState::DeviceStateInError) ) + { + return E_NOT_VALID_STATE; + } + + m_deviceStateChanged->SetState( DeviceState::DeviceStateStopping, S_OK, true ); + + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStopPlayback, nullptr ); +} + +// +// OnStopPlayback() +// +// Callback method to stop playback +// +HRESULT WASAPIRenderer::OnStopPlayback( IMFAsyncResult* ) +{ + // Stop playback by cancelling Work Item + // Cancel the queued work item (if any) + if (0 != m_sampleReadyKey) + { + MFCancelWorkItem( m_sampleReadyKey ); + m_sampleReadyKey = 0; + } + + // Flush anything left in buffer with silence + OnAudioSampleRequested( true ); + + m_audioClient->Stop(); + + m_deviceStateChanged->SetState( DeviceState::DeviceStateStopped, S_OK, true ); + return S_OK; +} + +// +// OnSampleReady() +// +// Callback method when ready to fill sample buffer +// +HRESULT WASAPIRenderer::OnSampleReady( IMFAsyncResult* ) +{ + HRESULT hr = S_OK; + + hr = OnAudioSampleRequested( false ); + + if (SUCCEEDED( hr )) + { + // Re-queue work item for next sample + if (m_deviceStateChanged->GetState() == DeviceState::DeviceStatePlaying) + { + hr = MFPutWaitingWorkItem( m_sampleReadyEvent, 0, m_sampleReadyAsyncResult.Get(), &m_sampleReadyKey ); + } + } + else + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return hr; +} + +// +// OnAudioSampleRequested() +// +// Called when audio device fires m_sampleReadyEvent +// +HRESULT WASAPIRenderer::OnAudioSampleRequested( bool isSilence ) +{ + HRESULT hr = S_OK; + uint32_t paddingFrames = 0; + uint32_t framesAvailable = 0; + + std::lock_guard lck(m_mutex); + + // Get padding in existing buffer + hr = m_audioClient->GetCurrentPadding( &paddingFrames); + if (FAILED( hr )) + { + goto exit; + } + + framesAvailable = m_bufferFrames - paddingFrames; + + // Only continue if we have buffer to write data + if (framesAvailable > 0) + { + if (isSilence) + { + BYTE *Data; + + // Fill the buffer with silence + hr = m_audioRenderClient->GetBuffer( framesAvailable, &Data ); + if (FAILED( hr )) + { + goto exit; + } + + hr = m_audioRenderClient->ReleaseBuffer( framesAvailable, AUDCLNT_BUFFERFLAGS_SILENT ); + goto exit; + } + + // Even if we cancel a work item, this may still fire due to the async + // nature of things. There should be a queued work item already to handle + // the process of stopping or stopped + if (m_deviceStateChanged->GetState() == DeviceState::DeviceStatePlaying) + { + BYTE *pRenderData; + uint32_t actualFramesToRead = m_buffer->GetCurrentUsage() / m_mixFormat->nBlockAlign; + uint32_t actualBytesToRead = actualFramesToRead * m_mixFormat->nBlockAlign; + + if (framesAvailable < actualFramesToRead) + { + actualFramesToRead = framesAvailable; + actualBytesToRead = actualFramesToRead * m_mixFormat->nBlockAlign; + } + + if (actualFramesToRead > 0) + { + hr = m_audioRenderClient->GetBuffer(actualFramesToRead, &pRenderData); + + if (SUCCEEDED(hr)) + { + m_buffer->GetCaptureBuffer(actualBytesToRead, pRenderData); + hr = m_audioRenderClient->ReleaseBuffer(actualFramesToRead, 0); + } + } + else + { + //No capture data, just write silence + hr = m_audioRenderClient->GetBuffer(framesAvailable, &pRenderData); + if (FAILED(hr)) + { + goto exit; + } + + hr = m_audioRenderClient->ReleaseBuffer(framesAvailable, AUDCLNT_BUFFERFLAGS_SILENT); + } + } + } + +exit: + if (AUDCLNT_E_RESOURCES_INVALIDATED == hr) + { + m_deviceStateChanged->SetState( DeviceState::DeviceStateUnInitialized, hr, false ); + hr = InitializeAudioDeviceAsync(); + } + + return hr; +} diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/WASAPIRenderer.h b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPIRenderer.h new file mode 100644 index 0000000000000000000000000000000000000000..7304e29f22882e64d5e413ea0b7f7f39b832422d --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/WASAPIRenderer.h @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------------------- +// WASAPIRenderer.h +// +// Functions to assist in rendering audio in WASAPI +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include +#include +#include +#include +#include +#include "DeviceState.h" +#include "Common.h" +#include "CBuffer.h" +#include + +#pragma once + +// Primary WASAPI Renderering Class +class WASAPIRenderer : + public Microsoft::WRL::RuntimeClass< Microsoft::WRL::RuntimeClassFlags< Microsoft::WRL::ClassicCom >, Microsoft::WRL::FtmBase, IActivateAudioInterfaceCompletionHandler > +{ +public: + WASAPIRenderer(); + + HRESULT InitializeAudioDeviceAsync(); + HRESULT StartPlaybackAsync(CBuffer* bufferToUse); + HRESULT StopPlaybackAsync(); + + DeviceStateChangedEvent^ GetDeviceStateEvent() { return m_deviceStateChanged; }; + WAVEFORMATEX* GetMixFormat() { return m_mixFormat; } + + METHODASYNCCALLBACK( WASAPIRenderer, StartPlayback, OnStartPlayback ); + METHODASYNCCALLBACK( WASAPIRenderer, StopPlayback, OnStopPlayback ); + METHODASYNCCALLBACK( WASAPIRenderer, SampleReady, OnSampleReady ); + + // IActivateAudioInterfaceCompletionHandler + STDMETHOD(ActivateCompleted)( IActivateAudioInterfaceAsyncOperation *operation ); + +private: + ~WASAPIRenderer(); + + HRESULT OnStartPlayback( IMFAsyncResult* ); + HRESULT OnStopPlayback( IMFAsyncResult* ); + HRESULT OnSampleReady( IMFAsyncResult* ); + + HRESULT ConfigureDeviceInternal(); + HRESULT OnAudioSampleRequested( bool isSilence = false ); + +private: + uint32_t m_bufferFrames; + HANDLE m_sampleReadyEvent; + MFWORKITEM_KEY m_sampleReadyKey; + std::mutex m_mutex; + + CBuffer* m_buffer; + + WAVEFORMATEX* m_mixFormat; + Microsoft::WRL::ComPtr m_audioClient; + Microsoft::WRL::ComPtr m_audioRenderClient; + Microsoft::WRL::ComPtr m_sampleReadyAsyncResult; + + DeviceStateChangedEvent^ m_deviceStateChanged; +}; diff --git a/Samples/Graphics/SimpleTextureUWP/pch.cpp b/Samples/Audio/SimpleWASAPICaptureUWP/pch.cpp similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/pch.cpp rename to Samples/Audio/SimpleWASAPICaptureUWP/pch.cpp diff --git a/Samples/Audio/SimpleWASAPICaptureUWP/pch.h b/Samples/Audio/SimpleWASAPICaptureUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..14029cb90b5fa52acc9a945c7a232b335d3cbe18 --- /dev/null +++ b/Samples/Audio/SimpleWASAPICaptureUWP/pch.h @@ -0,0 +1,69 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "SimpleMath.h" +#include "SpriteBatch.h" +#include "SpriteFont.h" + +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/Graphics/SimpleTextureUWP12/Assets/Logo.png b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/Logo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Assets/Logo.png rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/Logo.png diff --git a/Samples/Graphics/SimpleTextureUWP12/Assets/SmallLogo.png b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/SmallLogo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Assets/SmallLogo.png rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/SmallLogo.png diff --git a/Samples/Graphics/SimpleTextureUWP12/Assets/SplashScreen.png b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/SplashScreen.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Assets/SplashScreen.png rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/SplashScreen.png diff --git a/Samples/Graphics/SimpleTextureUWP12/Assets/StoreLogo.png b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/StoreLogo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Assets/StoreLogo.png rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/StoreLogo.png diff --git a/Samples/Graphics/SimpleTextureUWP12/Assets/WideLogo.png b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/WideLogo.png similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Assets/WideLogo.png rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/Assets/WideLogo.png diff --git a/Samples/Graphics/SimpleTriangleUWP/DeviceResources.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceResources.cpp similarity index 91% rename from Samples/Graphics/SimpleTriangleUWP/DeviceResources.cpp rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceResources.cpp index 49dc516d686e80f874ab22d77eaa60873118d670..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/Graphics/SimpleTriangleUWP/DeviceResources.cpp +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -352,29 +351,32 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() m_d3dRenderTargetView.ReleaseAndGetAddressOf() )); - // Create a depth stencil view for use with 3D rendering if needed. - CD3D11_TEXTURE2D_DESC depthStencilDesc( - m_depthBufferFormat, - backBufferWidth, - backBufferHeight, - 1, // This depth stencil view has only one texture. - 1, // Use a single mipmap level. - D3D11_BIND_DEPTH_STENCIL - ); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); - ComPtr depthStencil; - DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( - &depthStencilDesc, - nullptr, - depthStencil.GetAddressOf() - )); + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); - CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); - DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( - depthStencil.Get(), - &depthStencilViewDesc, - m_d3dDepthStencilView.ReleaseAndGetAddressOf() - )); + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } // Set the 3D rendering viewport to target the entire window. m_screenViewport = CD3D11_VIEWPORT( @@ -522,8 +524,11 @@ void DX::DeviceResources::Present() // overwritten. If dirty or scroll rects are used, this call should be removed. m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); - // Discard the contents of the depth stencil. - m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } // If the device was removed either by a disconnection or a driver upgrade, we // must recreate all device resources. @@ -575,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/Graphics/SimpleTriangleUWP/DeviceResources.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceResources.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/DeviceResources.h rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceResources.h diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceState.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceState.h new file mode 100644 index 0000000000000000000000000000000000000000..a87938564b4d1fb44b5def32f3fc4f0aa0a38fb3 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/DeviceState.h @@ -0,0 +1,86 @@ +//-------------------------------------------------------------------------------------- +// DeviceState.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// NB: All states >= DeviceStateInitialized will allow some methods +// to be called successfully on the Audio Client +enum class DeviceState +{ + DeviceStateUnInitialized, + DeviceStateInError, + DeviceStateDiscontinuity, + DeviceStateFlushing, + DeviceStateActivated, + DeviceStateInitialized, + DeviceStateStarting, + DeviceStatePlaying, + DeviceStateCapturing, + DeviceStatePausing, + DeviceStatePaused, + DeviceStateStopping, + DeviceStateStopped +}; + +// Class for DeviceStateChanged events +ref class DeviceStateChangedEventArgs sealed +{ +internal: + DeviceStateChangedEventArgs(DeviceState newState, HRESULT hr) : + m_DeviceState(newState), + m_hr(hr) + {}; + + property DeviceState State + { + DeviceState get() { return m_DeviceState; } + }; + + property int hr + { + int get() { return m_hr; } + } + +private: + DeviceState m_DeviceState; + HRESULT m_hr; +}; + +// DeviceStateChanged delegate +delegate void DeviceStateChangedHandler(Platform::Object^ sender, DeviceStateChangedEventArgs^ e); + +// DeviceStateChanged Event +ref class DeviceStateChangedEvent sealed +{ +public: + DeviceStateChangedEvent() : + m_DeviceState(DeviceState::DeviceStateUnInitialized) + {}; + + +internal: + DeviceState GetState() { return m_DeviceState; }; + + void SetState(DeviceState newState, HRESULT hr, bool FireEvent) { + if (m_DeviceState != newState) + { + m_DeviceState = newState; + + if (FireEvent) + { + DeviceStateChangedEventArgs^ e = ref new DeviceStateChangedEventArgs(m_DeviceState, hr); + StateChangedEvent(this, e); + } + } + }; + +public: + static event DeviceStateChangedHandler^ StateChangedEvent; + +private: + DeviceState m_DeviceState; +}; \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/Main.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..52a55b79a8b227e45795d07d7fe32a114cfc6d2f --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleWASAPIPlaySound.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/Package.appxmanifest b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..1c0740252f4633b6510dd18b8676059d39c514b6 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Package.appxmanifest @@ -0,0 +1,28 @@ + + + + + + SimplePlaySound + Xbox Advanced Technology Group + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/Readme.docx b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..c4892217365102ebb649203d113b827d1a174b83 Binary files /dev/null and b/Samples/Audio/SimpleWASAPIPlaySoundUWP/Readme.docx differ diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimplePlaySound_TemporaryKey.pfx b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimplePlaySound_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..1c19ce782b2fe04e8309040a761dd38b1b6e3ab9 Binary files /dev/null and b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimplePlaySound_TemporaryKey.pfx differ diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6c20b9df196ec060e0fb3b195bcdaad59efd3e7a --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.cpp @@ -0,0 +1,277 @@ +//-------------------------------------------------------------------------------------- +// SimpleWASAPIPlaySound.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleWASAPIPlaySound.h" + +#include "ATGColors.h" +#include "ControllerFont.h" + +using namespace DirectX; +using Microsoft::WRL::ComPtr; + +Sample::Sample() : + m_gamepadPresent(false) +{ + // Renders only 2D, so no need for a depth buffer. + m_deviceResources = std::make_unique(DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_UNKNOWN); + m_deviceResources->RegisterDeviceNotify(this); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); + + // Initialize MF + HRESULT hr = MFStartup(MF_VERSION, MFSTARTUP_LITE); + if (SUCCEEDED(hr)) + { + m_wm = ref new WASAPIManager(); + m_wm->SetVolume(50); + } + else + { + DX::ThrowIfFailed(hr); + } + +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const&) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + bool togglePlayback = false; + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + auto pad = m_gamePad->GetState(0); + m_gamepadPresent = pad.IsConnected(); + if (m_gamepadPresent) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + if (m_gamePadButtons.a == m_gamePadButtons.RELEASED) + { + togglePlayback = true; + } + } + else + { + m_gamePadButtons.Reset(); + + if (m_keyboardButtons.IsKeyReleased(DirectX::Keyboard::Keys::Space)) + { + togglePlayback = true; + } + + if (kb.Escape) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + } + + //Start/Stop sound playback + if (togglePlayback) + { + m_wm->PlayPauseToggle(); + } + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + auto rect = m_deviceResources->GetOutputSize(); + auto safeRect = SimpleMath::Viewport::ComputeTitleSafeArea(rect.right, rect.bottom); + + XMFLOAT2 pos(float(safeRect.left), float(safeRect.top)); + + m_spriteBatch->Begin(); + + m_spriteBatch->Draw(m_background.Get(), m_deviceResources->GetOutputSize()); + + wchar_t str[128] = { 0 }; + swprintf_s(str, L"Simple WASAPI Playback:"); + m_font->DrawString(m_spriteBatch.get(), str, pos, ATG::Colors::White); + pos.y += 30; + swprintf_s(str, L"Audio Source - Test tone at 440hz : %s", (m_wm->IsPlaying())? L"Is Playing" : L"Is Stopped"); + m_font->DrawString(m_spriteBatch.get(), str, pos, ATG::Colors::White); + + const wchar_t* legend = m_gamepadPresent + ? L"Press [A] to start/stop playback [View] Exit" + : L"Use Space to start/stop playback Esc: Exit"; + + DX::DrawControllerString(m_spriteBatch.get(), m_font.get(), m_ctrlFont.get(), legend, + XMFLOAT2(float(safeRect.left), float(safeRect.bottom) - m_font->GetLineSpacing()), + ATG::Colors::LightGrey); + + m_spriteBatch->End(); + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + + // Don't need to clear color as the sample draws a fullscreen image background + + context->OMSetRenderTargets(1, &renderTarget, nullptr); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); + + // Suspend audio engine + m_wm->StopDevice(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); + + // Resume audio engine + m_wm->StartDevice(); + +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + auto device = m_deviceResources->GetD3DDevice(); + + m_spriteBatch = std::make_unique(context); + + m_font = std::make_unique(device, L"SegoeUI_18.spritefont"); + m_ctrlFont = std::make_unique(device, L"XboxOneControllerLegendSmall.spritefont"); + + DX::ThrowIfFailed(CreateDDSTextureFromFile(device, L"ATGSampleBackground.DDS", nullptr, m_background.ReleaseAndGetAddressOf())); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + m_spriteBatch->SetRotation(m_deviceResources->GetRotation()); +} + +void Sample::OnDeviceLost() +{ + m_spriteBatch.reset(); + m_font.reset(); + m_ctrlFont.reset(); + m_background.Reset(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion + diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.h new file mode 100644 index 0000000000000000000000000000000000000000..b3dc6c9137e523ab87570bfb17471501d7a71ad3 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.h @@ -0,0 +1,77 @@ +//-------------------------------------------------------------------------------------- +// SimpleWASAPIPlaySound.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" +#include "WASAPIManager.h" + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + // Device resources. + std::unique_ptr m_deviceResources; + + // Rendering loop timer. + DX::StepTimer m_timer; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; + bool m_gamepadPresent; + + // Render objects. + std::unique_ptr m_spriteBatch; + std::unique_ptr m_font; + std::unique_ptr m_ctrlFont; + + Microsoft::WRL::ComPtr m_background; + + WASAPIManager^ m_wm; + unsigned int m_volume; +}; diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.sln b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.sln new file mode 100644 index 0000000000000000000000000000000000000000..383bd0198773db7889b006b2685b26786f228750 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimpleWASAPIPlaySound", "SimpleWASAPIPlaySound.vcxproj", "{DC540FD8-0799-4A4B-8735-393D58818D8D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|ARM.ActiveCfg = Debug|ARM + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|ARM.Build.0 = Debug|ARM + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|ARM.Deploy.0 = Debug|ARM + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|x64.ActiveCfg = Debug|x64 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|x64.Build.0 = Debug|x64 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|x64.Deploy.0 = Debug|x64 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|x86.ActiveCfg = Debug|Win32 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|x86.Build.0 = Debug|Win32 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Debug|x86.Deploy.0 = Debug|Win32 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|ARM.ActiveCfg = Release|ARM + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|ARM.Build.0 = Release|ARM + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|ARM.Deploy.0 = Release|ARM + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|x64.ActiveCfg = Release|x64 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|x64.Build.0 = Release|x64 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|x64.Deploy.0 = Release|x64 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|x86.ActiveCfg = Release|Win32 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|x86.Build.0 = Release|Win32 + {DC540FD8-0799-4A4B-8735-393D58818D8D}.Release|x86.Deploy.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.vcxproj b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..85d9faead609b36204b9bc3de7b894e9edcc779c --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.vcxproj @@ -0,0 +1,269 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {dc540fd8-0799-4a4b-8735-393d58818d8d} + DirectXApp + SimplePlaySound + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SimplePlaySound_TemporaryKey.pfx + + + + MFuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + + + MFuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + + + MFuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + + + MFuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + + + MFuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + + + MFuuid.lib;d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + + + + Designer + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + + + + + \ No newline at end of file diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.vcxproj.filters b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..f6658e48594111e43bc86dafdf4d8afda7a546be --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/SimpleWASAPIPlaySound.vcxproj.filters @@ -0,0 +1,90 @@ + + + + + f82b7e7f-5cef-4078-90d5-6165dc506eb0 + + + fb27a840-9692-4adf-8934-0ced3b3a0868 + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {1aaa0de1-c34d-490b-a2cc-34b1eddb8a84} + + + + + + Common + + + Common + + + ATG Tool Kit + + + + + + + Common + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + + + + + Common + + + ATG Tool Kit + + + + + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + Assets + + + + Assets + + + \ No newline at end of file diff --git a/Samples/Graphics/SimpleTextureUWP12/StepTimer.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/StepTimer.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/StepTimer.h rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/StepTimer.h diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/ToneSampleGenerator.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/ToneSampleGenerator.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b214076d2d342032ab60902be3f129b24a15f67e --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/ToneSampleGenerator.cpp @@ -0,0 +1,177 @@ +//-------------------------------------------------------------------------------------- +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +// +// ToneSampleGenerator.h +// + +#include "pch.h" +#include "ToneSampleGenerator.h" + +const int TONE_DURATION_SEC = 30; +const double TONE_AMPLITUDE = 0.5; // Scalar value, should be between 0.0 - 1.0 + +// +// Convert from double to float, byte, short or int32. +// +template<> +float Convert(double Value) +{ + return static_cast(Value); +}; + +template<> +short Convert(double Value) +{ + return static_cast(Value * _I16_MAX); +}; + +// +// ToneSampleGenerator() +// +ToneSampleGenerator::ToneSampleGenerator() +{ + m_SampleQueue = nullptr; + m_SampleQueueTail = &m_SampleQueue; +} + +// +// ~ToneSampleGenerator() +// +ToneSampleGenerator::~ToneSampleGenerator() +{ + // Flush unused samples + Flush(); +} + +// +// GenerateSampleBuffer() +// +// Create a linked list of sample buffers +// +HRESULT ToneSampleGenerator::GenerateSampleBuffer(unsigned long Frequency, unsigned int FramesPerPeriod, WAVEFORMATEX *wfx ) +{ + HRESULT hr = S_OK; + + uint32_t renderBufferSizeInBytes = FramesPerPeriod * wfx->nBlockAlign; + uint64_t renderDataLength = ( wfx->nSamplesPerSec * TONE_DURATION_SEC * wfx->nBlockAlign ) + ( renderBufferSizeInBytes - 1 ); + uint64_t renderBufferCount = renderDataLength / renderBufferSizeInBytes; + + double theta = 0; + + for( UINT64 i = 0; i < renderBufferCount; i++ ) + { + RenderBuffer *SampleBuffer = new (std::nothrow) RenderBuffer(); + if (nullptr == SampleBuffer) + { + return E_OUTOFMEMORY; + } + + SampleBuffer->BufferSize = renderBufferSizeInBytes; + SampleBuffer->BytesFilled = renderBufferSizeInBytes; + SampleBuffer->Buffer = new (std::nothrow) unsigned char[ renderBufferSizeInBytes ]; + if (nullptr == SampleBuffer->Buffer) + { + return E_OUTOFMEMORY; + } + + switch( CalculateMixFormatType( wfx ) ) + { + case RenderSampleType::SampleType16BitPCM: + GenerateSineSamples( SampleBuffer->Buffer, SampleBuffer->BufferSize, Frequency, wfx->nChannels, wfx->nSamplesPerSec, TONE_AMPLITUDE, &theta); + break; + + case RenderSampleType::SampleTypeFloat: + GenerateSineSamples( SampleBuffer->Buffer, SampleBuffer->BufferSize, Frequency, wfx->nChannels, wfx->nSamplesPerSec, TONE_AMPLITUDE, &theta); + break; + + default: + return E_UNEXPECTED; + break; + } + + *m_SampleQueueTail = SampleBuffer; + m_SampleQueueTail = &SampleBuffer->Next; + } + return hr; +} + +// +// GenerateSineSamples() +// +// Generate samples which represent a sine wave that fits into the specified buffer. +// +// T: Type of data holding the sample (short, int, byte, float) +// Buffer - Buffer to hold the samples +// BufferLength - Length of the buffer. +// ChannelCount - Number of channels per audio frame. +// SamplesPerSecond - Samples/Second for the output data. +// InitialTheta - Initial theta value - start at 0, modified in this function. +// +template +void ToneSampleGenerator::GenerateSineSamples(unsigned char *Buffer, size_t BufferLength, unsigned long Frequency, unsigned short ChannelCount, unsigned long SamplesPerSecond, double Amplitude, double *InitialTheta) +{ + double sampleIncrement = (Frequency * (M_PI*2)) / (double)SamplesPerSecond; + T *dataBuffer = reinterpret_cast(Buffer); + double theta = (InitialTheta != NULL ? *InitialTheta : 0); + + for (size_t i = 0 ; i < BufferLength / sizeof(T) ; i += ChannelCount) + { + double sinValue = Amplitude * sin( theta ); + for(size_t j = 0 ;j < ChannelCount; j++) + { + dataBuffer[i+j] = Convert(sinValue); + } + theta += sampleIncrement; + } + + if (InitialTheta != NULL) + { + *InitialTheta = theta; + } +} + +// +// FillSampleBuffer() +// +// File the Data buffer of size BytesToRead with the first item in the queue. Caller is responsible for allocating and freeing buffer +// +HRESULT ToneSampleGenerator::FillSampleBuffer( unsigned int BytesToRead, unsigned char *Data ) +{ + if (nullptr == Data) + { + return E_POINTER; + } + + RenderBuffer *SampleBuffer = m_SampleQueue; + + if (BytesToRead > SampleBuffer->BufferSize) + { + return E_INVALIDARG; + } + + CopyMemory( Data, SampleBuffer->Buffer, BytesToRead ); + + m_SampleQueue = m_SampleQueue->Next; + + return S_OK; +} + +// +// Flush() +// +// Remove and free unused samples from the queue +// +void ToneSampleGenerator::Flush() +{ + while( m_SampleQueue != nullptr ) + { + RenderBuffer *SampleBuffer = m_SampleQueue; + m_SampleQueue = SampleBuffer->Next; + SAFE_DELETE( SampleBuffer ); + } +} + diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/ToneSampleGenerator.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/ToneSampleGenerator.h new file mode 100644 index 0000000000000000000000000000000000000000..1e66c0a52906383e64a389f4b4ea761fe1c69850 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/ToneSampleGenerator.h @@ -0,0 +1,37 @@ +//-------------------------------------------------------------------------------------- +// ToneSampleGenerator.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + + +#pragma once + +#define _USE_MATH_DEFINES +#include +#include + +template T Convert(double Value); + +class ToneSampleGenerator +{ +public: + ToneSampleGenerator(); + ~ToneSampleGenerator(); + + bool IsEOF(){ return (m_SampleQueue == nullptr); }; + unsigned int GetBufferLength(){ return ( m_SampleQueue != nullptr ? m_SampleQueue->BufferSize : 0 ); }; + void Flush(); + + HRESULT GenerateSampleBuffer( unsigned long Frequency, unsigned int FramesPerPeriod, WAVEFORMATEX *wfx ); + HRESULT FillSampleBuffer( unsigned int BytesToRead, unsigned char *Data ); + +private: + template + void GenerateSineSamples(unsigned char *Buffer, size_t BufferLength, unsigned long Frequency, unsigned short ChannelCount, unsigned long SamplesPerSecond, double Amplitude, double *InitialTheta); + +private: + RenderBuffer *m_SampleQueue; + RenderBuffer **m_SampleQueueTail; +}; diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIManager.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIManager.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b82384894d77c03627ef98e26e9d03962c2769f7 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIManager.cpp @@ -0,0 +1,242 @@ +//-------------------------------------------------------------------------------------- +// WASAPIManager.cpp +// +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "WASAPIManager.h" + + +using namespace Platform; + +WASAPIManager::WASAPIManager() : + m_StateChangedEvent( nullptr ), + m_Renderer( nullptr ) +{ +} + +WASAPIManager::~WASAPIManager() +{ + if (m_DeviceStateChangeToken.Value != 0) + { + m_StateChangedEvent->StateChangedEvent -= m_DeviceStateChangeToken; + + m_StateChangedEvent = nullptr; + m_DeviceStateChangeToken.Value = 0; + } +} + +//-------------------------------------------------------------------------------------- +// Name: OnDeviceStateChange +// Desc: Event callback from WASAPI renderer for changes in device state +//-------------------------------------------------------------------------------------- +void WASAPIManager::OnDeviceStateChange( Object^ sender, DeviceStateChangedEventArgs^ e ) +{ + // Handle state specific messages + switch( e->State ) + { + case DeviceState::DeviceStateInitialized: + StartDevice(); + break; + + case DeviceState::DeviceStatePlaying: + OutputDebugString( L"Playback Started\n" ); + break; + + case DeviceState::DeviceStatePaused: + OutputDebugString( L"Playback Paused\n" ); + break; + + case DeviceState::DeviceStateStopped: + m_Renderer = nullptr; + + if (m_DeviceStateChangeToken.Value != 0) + { + m_StateChangedEvent->StateChangedEvent -= m_DeviceStateChangeToken; + m_StateChangedEvent = nullptr; + m_DeviceStateChangeToken.Value = 0; + } + + OutputDebugString( L"Playback Stopped\n" ); + break; + + case DeviceState::DeviceStateInError: + HRESULT hr = e->hr; + + if (m_DeviceStateChangeToken.Value != 0) + { + m_StateChangedEvent->StateChangedEvent -= m_DeviceStateChangeToken; + m_StateChangedEvent = nullptr; + m_DeviceStateChangeToken.Value = 0; + } + + m_Renderer = nullptr; + + wchar_t hrVal[11]; + swprintf_s( hrVal, _countof( hrVal ), L"0x%08x", hr ); + String^ strHRVal = ref new String( hrVal ); + + String^ strMessage = ""; + + // Specifically handle a couple of known errors + switch( hr ) + { + case AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE: + strMessage = "ERROR: Endpoint Does Not Support HW Offload (" + strHRVal + ")\n"; + OutputDebugString(strMessage->Data()); + break; + + case AUDCLNT_E_RESOURCES_INVALIDATED: + strMessage = "ERROR: Endpoint Lost Access To Resources (" + strHRVal + ")\n"; + OutputDebugString( strMessage->Data() ); + break; + + default: + strMessage = "ERROR: " + strHRVal + " has occurred.\n"; + OutputDebugString( strMessage->Data() ); + } + } +} + +//-------------------------------------------------------------------------------------- +// Name: OnSetVolume +// Desc: Updates the session volume +//-------------------------------------------------------------------------------------- +void WASAPIManager::SetVolume( unsigned int volume ) +{ + if (m_Renderer) + { + DeviceState deviceState = m_StateChangedEvent->GetState(); + + if ( deviceState == DeviceState::DeviceStatePlaying || deviceState == DeviceState::DeviceStatePaused ) + { + // Updates the Session volume on the AudioClient + m_Renderer->SetVolumeOnSession( volume ); + } + } +} + +//-------------------------------------------------------------------------------------- +// Name: InitializeDevice +// Desc: Sets up a new instance of the WASAPI renderer +//-------------------------------------------------------------------------------------- +void WASAPIManager::InitializeDevice() +{ + if (!m_Renderer) + { + // Create a new WASAPI instance + m_Renderer = Microsoft::WRL::Make(); + + if (nullptr == m_Renderer) + { + OnDeviceStateChange( this, ref new DeviceStateChangedEventArgs( DeviceState::DeviceStateInError, E_OUTOFMEMORY )); + return; + } + + // Get a pointer to the device event interface + m_StateChangedEvent = m_Renderer->GetDeviceStateEvent(); + + if (nullptr == m_StateChangedEvent) + { + OnDeviceStateChange( this, ref new DeviceStateChangedEventArgs( DeviceState::DeviceStateInError, E_FAIL )); + return; + } + + // Register for events + m_DeviceStateChangeToken = m_StateChangedEvent->StateChangedEvent += ref new DeviceStateChangedHandler( this, &WASAPIManager::OnDeviceStateChange ); + + // Configure user based properties + DEVICEPROPS props = { 0 }; + int BufferSize = 0; + props.IsBackground = false; + props.hnsBufferDuration = static_cast(BufferSize); + props.Frequency = 440; + + m_Renderer->SetProperties( props ); + + // Selects the Default Audio Device + m_Renderer->InitializeAudioDeviceAsync(); + } +} + +//-------------------------------------------------------------------------------------- +// Name: StartDevice +// Desc: Initialize and start playback +//-------------------------------------------------------------------------------------- +void WASAPIManager::StartDevice() +{ + if (nullptr == m_Renderer) + { + // Call from main UI thread + InitializeDevice(); + } + else + { + // Starts a work item to begin playback, likely in the paused state + m_Renderer->StartPlaybackAsync(); + } +} + +//-------------------------------------------------------------------------------------- +// Name: StopDevice +// Desc: Stop playback, if WASAPI renderer exists +//-------------------------------------------------------------------------------------- +void WASAPIManager::StopDevice() +{ + if (m_Renderer) + { + // Set the event to stop playback + m_Renderer->StopPlaybackAsync(); + } +} + +//-------------------------------------------------------------------------------------- +// Name: PauseDevice +// Desc: If device is playing, pause playback. Otherwise do nothing. +//-------------------------------------------------------------------------------------- +void WASAPIManager::PauseDevice() +{ + if (m_Renderer) + { + DeviceState deviceState = m_StateChangedEvent->GetState(); + + if (deviceState == DeviceState::DeviceStatePlaying) + { + // Starts a work item to pause playback + m_Renderer->PausePlaybackAsync(); + } + } +} + +//-------------------------------------------------------------------------------------- +// Name: PlayPauseToggle +// Desc: Toggle pause state +//-------------------------------------------------------------------------------------- +void WASAPIManager::PlayPauseToggle() +{ + if (m_Renderer) + { + DeviceState deviceState = m_StateChangedEvent->GetState(); + + // We only permit a pause state change if we're fully playing + // or fully paused. + if (deviceState == DeviceState::DeviceStatePlaying) + { + // Starts a work item to pause playback + m_Renderer->PausePlaybackAsync(); + } + else if (deviceState == DeviceState::DeviceStatePaused) + { + // Starts a work item to pause playback + m_Renderer->StartPlaybackAsync(); + } + } + else + { + StartDevice(); + } +} + diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIManager.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIManager.h new file mode 100644 index 0000000000000000000000000000000000000000..002143e80d2985785c6688788183f886406247b6 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIManager.h @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------------------- +// WASAPIManager.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "pch.h" +#include "DeviceState.h" +#include "WASAPIRenderer.h" +#include "WAVFileReader.h" + + + +ref class WASAPIManager sealed +{ +public: + WASAPIManager(); + + void StartDevice(); + void StopDevice(); + void PauseDevice(); + void PlayPauseToggle(); + + void SetVolume( unsigned int volume ); + + //-------------------------------------------------------------------------------------- + // Name: IsStopped + // Desc: Returns true if the renderer doesn't exist or it does exist and it's in the + // DeviceStateStopped state. + //-------------------------------------------------------------------------------------- + bool IsStopped() + { + bool bStopped = true; + + if ( m_Renderer != nullptr ) + { + bStopped = ( m_StateChangedEvent->GetState() == DeviceState::DeviceStateStopped ); + } + return bStopped; + } + + bool IsPlaying() + { + bool bPlaying = false; + + if (m_Renderer != nullptr) + { + bPlaying = (m_StateChangedEvent->GetState() == DeviceState::DeviceStatePlaying); + } + return bPlaying; + } + +private: + ~WASAPIManager(); + + void OnDeviceStateChange( Object^ sender, DeviceStateChangedEventArgs^ e ); + + void InitializeDevice(); + + Windows::Foundation::EventRegistrationToken m_DeviceStateChangeToken; + + DeviceStateChangedEvent^ m_StateChangedEvent; + Microsoft::WRL::ComPtr m_Renderer; +}; diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIRenderer.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIRenderer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..624a2042aaf728e3cd08be8439419dabc428ab30 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIRenderer.cpp @@ -0,0 +1,634 @@ +//-------------------------------------------------------------------------------------- +// +// WASAPIRenderer.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + + +#include "pch.h" +#include "WASAPIRenderer.h" + +using namespace Windows::System::Threading; +using namespace Windows::Media::Devices; + +using Microsoft::WRL::ComPtr; + +// +// WASAPIRenderer() +// +WASAPIRenderer::WASAPIRenderer() : + m_BufferFrames( 0 ), + m_DeviceStateChanged( nullptr ), + m_AudioClient( nullptr ), + m_AudioRenderClient( nullptr ), + m_SampleReadyAsyncResult( nullptr ), + m_ToneSource( nullptr ) +{ + // Create events for sample ready or user stop + m_SampleReadyEvent = CreateEventEx( nullptr, nullptr, 0, EVENT_ALL_ACCESS ); + if (nullptr == m_SampleReadyEvent) + { + DX::ThrowIfFailed( HRESULT_FROM_WIN32( GetLastError() ) ); + } + + m_DeviceStateChanged = ref new DeviceStateChangedEvent(); + if (nullptr == m_DeviceStateChanged) + { + DX::ThrowIfFailed( E_OUTOFMEMORY ); + } +} + +// +// ~WASAPIRenderer() +// +WASAPIRenderer::~WASAPIRenderer() +{ + if (INVALID_HANDLE_VALUE != m_SampleReadyEvent) + { + CloseHandle( m_SampleReadyEvent ); + m_SampleReadyEvent = INVALID_HANDLE_VALUE; + } + + m_DeviceStateChanged = nullptr; +} + +// +// InitializeAudioDeviceAsync() +// +// Activates the default audio renderer on a asynchronous callback thread. This needs +// to be called from the main UI thread. +// +HRESULT WASAPIRenderer::InitializeAudioDeviceAsync() +{ + ComPtr asyncOp; + HRESULT hr = S_OK; + + // Get a string representing the Default Audio Device Renderer + m_DeviceIdString = MediaDevice::GetDefaultAudioRenderId( Windows::Media::Devices::AudioDeviceRole::Default ); + + // This call must be made on the main UI thread. Async operation will call back to + // IActivateAudioInterfaceCompletionHandler::ActivateCompleted, which must be an agile interface implementation + hr = ActivateAudioInterfaceAsync( m_DeviceIdString->Data(), __uuidof(IAudioClient2), nullptr, this, &asyncOp ); + if (FAILED( hr )) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return hr; +} + +// +// ActivateCompleted() +// +// Callback implementation of ActivateAudioInterfaceAsync function. This will be called on MTA thread +// when results of the activation are available. +// +HRESULT WASAPIRenderer::ActivateCompleted( IActivateAudioInterfaceAsyncOperation *operation ) +{ + HRESULT hr = S_OK; + HRESULT hrActivateResult = S_OK; + ComPtr punkAudioInterface = nullptr; + + if (m_DeviceStateChanged->GetState() != DeviceState::DeviceStateUnInitialized) + { + hr = E_NOT_VALID_STATE; + goto exit; + } + + // Check for a successful activation result + hr = operation->GetActivateResult( &hrActivateResult, &punkAudioInterface ); + if (SUCCEEDED( hr ) && SUCCEEDED( hrActivateResult )) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateActivated, S_OK, false ); + + // Get the pointer for the Audio Client + punkAudioInterface.Get()->QueryInterface( IID_PPV_ARGS(&m_AudioClient) ); + if( nullptr == m_AudioClient ) + { + hr = E_FAIL; + goto exit; + } + + // Configure user defined properties + hr = ConfigureDeviceInternal(); + if (FAILED( hr )) + { + goto exit; + } + + // Initialize the AudioClient in Shared Mode with the user specified buffer + hr = m_AudioClient->Initialize( AUDCLNT_SHAREMODE_SHARED, + AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST, + m_DeviceProps.hnsBufferDuration, + m_DeviceProps.hnsBufferDuration, + m_MixFormat, + nullptr ); + if (FAILED( hr )) + { + goto exit; + } + + // Get the maximum size of the AudioClient Buffer + hr = m_AudioClient->GetBufferSize( &m_BufferFrames ); + if (FAILED( hr )) + { + goto exit; + } + + // Get the render client + hr = m_AudioClient->GetService( __uuidof(IAudioRenderClient), (void**) &m_AudioRenderClient ); + if (FAILED( hr )) + { + goto exit; + } + + // Create Async callback for sample events + hr = MFCreateAsyncResult( nullptr, &m_xSampleReady, nullptr, &m_SampleReadyAsyncResult ); + if (FAILED( hr )) + { + goto exit; + } + + // Sets the event handle that the system signals when an audio buffer is ready to be processed by the client + hr = m_AudioClient->SetEventHandle( m_SampleReadyEvent ); + if (FAILED( hr )) + { + goto exit; + } + + // Everything succeeded + m_DeviceStateChanged->SetState( DeviceState::DeviceStateInitialized, S_OK, true ); + + } + +exit: + + if (FAILED( hr )) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + // Need to return S_OK + return S_OK; +} + +// +// SetProperties() +// +// Sets various properties that the user defines in the scenario +// +HRESULT WASAPIRenderer::SetProperties( DEVICEPROPS props ) +{ + m_DeviceProps = props; + return S_OK; +} + +// +// GetBufferFramesPerPeriod() +// +// Get the time in seconds between passes of the audio device +// +UINT32 WASAPIRenderer::GetBufferFramesPerPeriod() +{ + REFERENCE_TIME defaultDevicePeriod = 0; + REFERENCE_TIME minimumDevicePeriod = 0; + + if (m_DeviceProps.IsHWOffload) + { + return m_BufferFrames; + } + + // Get the audio device period + HRESULT hr = m_AudioClient->GetDevicePeriod( &defaultDevicePeriod, &minimumDevicePeriod); + if (FAILED( hr )) + { + return 0; + } + + double devicePeriodInSeconds = defaultDevicePeriod / (10000.0*1000.0); + + return static_cast( m_MixFormat->nSamplesPerSec * devicePeriodInSeconds + 0.5 ); +} + +// +// ConfigureDeviceInternal() +// +// Sets additional playback parameters and opts into hardware offload +// +HRESULT WASAPIRenderer::ConfigureDeviceInternal() +{ + if (m_DeviceStateChanged->GetState() != DeviceState::DeviceStateActivated) + { + return E_NOT_VALID_STATE; + } + + HRESULT hr = S_OK; + + // Opt into HW Offloading. If the endpoint does not support offload it will return AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE + AudioClientProperties audioProps = {0}; + audioProps.cbSize = sizeof( AudioClientProperties ); + audioProps.bIsOffload = m_DeviceProps.IsHWOffload; + audioProps.eCategory = AudioCategory_ForegroundOnlyMedia; + + if (m_DeviceProps.IsRawChosen && m_DeviceProps.IsRawSupported) + { + audioProps.Options = AUDCLNT_STREAMOPTIONS_RAW; + } + + hr = m_AudioClient->SetClientProperties( &audioProps ); + if (FAILED( hr )) + { + return hr; + } + + // This sample opens the device is shared mode so we need to find the supported WAVEFORMATEX mix format + hr = m_AudioClient->GetMixFormat( &m_MixFormat ); + if (FAILED( hr )) + { + return hr; + } + + // Verify the user defined value for hardware buffer + hr = ValidateBufferValue(); + + return hr; +} + +// +// ValidateBufferValue() +// +// Verifies the user specified buffer value for hardware offload +// +HRESULT WASAPIRenderer::ValidateBufferValue() +{ + HRESULT hr = S_OK; + + if (!m_DeviceProps.IsHWOffload) + { + // If we aren't using HW Offload, set this to 0 to use the default value + m_DeviceProps.hnsBufferDuration = 0; + return hr; + } + + REFERENCE_TIME hnsMinBufferDuration; + REFERENCE_TIME hnsMaxBufferDuration; + + hr = m_AudioClient->GetBufferSizeLimits( m_MixFormat, true, &hnsMinBufferDuration, &hnsMaxBufferDuration ); + if (SUCCEEDED( hr )) + { + if (m_DeviceProps.hnsBufferDuration < hnsMinBufferDuration) + { + // using MINIMUM size instead + m_DeviceProps.hnsBufferDuration = hnsMinBufferDuration; + } + else if (m_DeviceProps.hnsBufferDuration > hnsMaxBufferDuration) + { + // using MAXIMUM size instead + m_DeviceProps.hnsBufferDuration = hnsMaxBufferDuration; + } + } + + return hr; +} + +// +// SetVolumeOnSession() +// +HRESULT WASAPIRenderer::SetVolumeOnSession(unsigned int volume ) +{ + if (volume > 100) + { + return E_INVALIDARG; + } + + HRESULT hr = S_OK; + + ComPtr SessionAudioVolume = nullptr; + float ChannelVolume = 0.0; + + hr = m_AudioClient->GetService( __uuidof(ISimpleAudioVolume), reinterpret_cast(SessionAudioVolume.Get()) ); + if (FAILED( hr )) + { + goto exit; + } + + ChannelVolume = volume / (float)100.0; + + // Set the session volume on the endpoint + hr = SessionAudioVolume->SetMasterVolume( ChannelVolume, nullptr ); + +exit: + return hr; +} + +// +// ConfigureSource() +// +// Configures tone or file playback +// +HRESULT WASAPIRenderer::ConfigureSource() +{ + HRESULT hr = S_OK; + UINT32 FramesPerPeriod = GetBufferFramesPerPeriod(); + + // Generate the sine wave sample buffer + m_ToneSource = std::make_unique(); + if (m_ToneSource) + { + hr = m_ToneSource->GenerateSampleBuffer( m_DeviceProps.Frequency, FramesPerPeriod, m_MixFormat ); + } + else + { + hr = E_OUTOFMEMORY; + } + + return hr; +} + +// +// StartPlaybackAsync() +// +// Starts asynchronous playback on a separate thread via MF Work Item +// +HRESULT WASAPIRenderer::StartPlaybackAsync() +{ + HRESULT hr = S_OK; + + // We should be stopped if the user stopped playback, or we should be + // initialzied if this is the first time through getting ready to playback. + if ( (m_DeviceStateChanged->GetState() == DeviceState::DeviceStateStopped) || + (m_DeviceStateChanged->GetState() == DeviceState::DeviceStateInitialized) ) + { + // Setup either ToneGeneration or File Playback + hr = ConfigureSource(); + if (FAILED( hr )) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + return hr; + } + + m_DeviceStateChanged->SetState( DeviceState::DeviceStateStarting, S_OK, true ); + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStartPlayback, nullptr ); + } + else if (m_DeviceStateChanged->GetState() == DeviceState::DeviceStatePaused) + { + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStartPlayback, nullptr ); + } + + // Otherwise something else happened + return E_FAIL; +} + +// +// OnStartPlayback() +// +// Callback method to start playback +// +HRESULT WASAPIRenderer::OnStartPlayback( IMFAsyncResult* ) +{ + HRESULT hr = S_OK; + + // Pre-Roll the buffer with silence + hr = OnAudioSampleRequested( true ); + if (FAILED( hr )) + { + goto exit; + } + + // Actually start the playback + hr = m_AudioClient->Start(); + if (SUCCEEDED( hr )) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStatePlaying, S_OK, true ); + hr = MFPutWaitingWorkItem( m_SampleReadyEvent, 0, m_SampleReadyAsyncResult.Get(), &m_SampleReadyKey ); + } + +exit: + if (FAILED( hr )) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return S_OK; +} + +// +// StopPlaybackAsync() +// +// Stop playback asynchronously via MF Work Item +// +HRESULT WASAPIRenderer::StopPlaybackAsync() +{ + if ( (m_DeviceStateChanged->GetState() != DeviceState::DeviceStatePlaying) && + (m_DeviceStateChanged->GetState() != DeviceState::DeviceStatePaused) && + (m_DeviceStateChanged->GetState() != DeviceState::DeviceStateInError) ) + { + return E_NOT_VALID_STATE; + } + + m_DeviceStateChanged->SetState( DeviceState::DeviceStateStopping, S_OK, true ); + + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xStopPlayback, nullptr ); +} + +// +// OnStopPlayback() +// +// Callback method to stop playback +// +HRESULT WASAPIRenderer::OnStopPlayback( IMFAsyncResult* ) +{ + // Stop playback by cancelling Work Item + // Cancel the queued work item (if any) + if (0 != m_SampleReadyKey) + { + MFCancelWorkItem( m_SampleReadyKey ); + m_SampleReadyKey = 0; + } + + // Flush anything left in buffer with silence + OnAudioSampleRequested( true ); + + m_AudioClient->Stop(); + + m_ToneSource->Flush(); + + m_DeviceStateChanged->SetState( DeviceState::DeviceStateStopped, S_OK, true ); + return S_OK; +} + +// +// PausePlaybackAsync() +// +// Pause playback asynchronously via MF Work Item +// +HRESULT WASAPIRenderer::PausePlaybackAsync() +{ + if ( (m_DeviceStateChanged->GetState() != DeviceState::DeviceStatePlaying) && + (m_DeviceStateChanged->GetState() != DeviceState::DeviceStateInError) ) + { + return E_NOT_VALID_STATE; + } + + // Change state to stop automatic queueing of samples + m_DeviceStateChanged->SetState( DeviceState::DeviceStatePausing, S_OK, false ); + return MFPutWorkItem2( MFASYNC_CALLBACK_QUEUE_MULTITHREADED, 0, &m_xPausePlayback, nullptr ); + +} + +// +// OnPausePlayback() +// +// Callback method to pause playback +// +HRESULT WASAPIRenderer::OnPausePlayback( IMFAsyncResult* ) +{ + m_AudioClient->Stop(); + m_DeviceStateChanged->SetState( DeviceState::DeviceStatePaused, S_OK, true ); + return S_OK; +} + +// +// OnSampleReady() +// +// Callback method when ready to fill sample buffer +// +HRESULT WASAPIRenderer::OnSampleReady( IMFAsyncResult* ) +{ + HRESULT hr = S_OK; + + hr = OnAudioSampleRequested( false ); + + if (SUCCEEDED( hr )) + { + // Re-queue work item for next sample + if (m_DeviceStateChanged->GetState() == DeviceState::DeviceStatePlaying) + { + hr = MFPutWaitingWorkItem( m_SampleReadyEvent, 0, m_SampleReadyAsyncResult.Get(), &m_SampleReadyKey ); + } + } + else + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateInError, hr, true ); + } + + return hr; +} + +// +// OnAudioSampleRequested() +// +// Called when audio device fires m_SampleReadyEvent +// +HRESULT WASAPIRenderer::OnAudioSampleRequested( bool IsSilence ) +{ + HRESULT hr = S_OK; + UINT32 PaddingFrames = 0; + UINT32 FramesAvailable = 0; + + std::lock_guard lck(m_mutex); + + // Get padding in existing buffer + hr = m_AudioClient->GetCurrentPadding( &PaddingFrames ); + if (FAILED( hr )) + { + goto exit; + } + + // Audio frames available in buffer + if (m_DeviceProps.IsHWOffload) + { + // In HW mode, GetCurrentPadding returns the number of available frames in the + // buffer, so we can just use that directly + FramesAvailable = PaddingFrames; + } + else + { + // In non-HW shared mode, GetCurrentPadding represents the number of queued frames + // so we can subtract that from the overall number of frames we have + FramesAvailable = m_BufferFrames - PaddingFrames; + } + + // Only continue if we have buffer to write data + if (FramesAvailable > 0) + { + if (IsSilence) + { + BYTE *Data; + + // Fill the buffer with silence + hr = m_AudioRenderClient->GetBuffer( FramesAvailable, &Data ); + if (FAILED( hr )) + { + goto exit; + } + + hr = m_AudioRenderClient->ReleaseBuffer( FramesAvailable, AUDCLNT_BUFFERFLAGS_SILENT ); + goto exit; + } + + // Even if we cancel a work item, this may still fire due to the async + // nature of things. There should be a queued work item already to handle + // the process of stopping or stopped + if (m_DeviceStateChanged->GetState() == DeviceState::DeviceStatePlaying) + { + hr = GetToneSample( FramesAvailable ); + } + } + +exit: + + if (AUDCLNT_E_RESOURCES_INVALIDATED == hr) + { + m_DeviceStateChanged->SetState( DeviceState::DeviceStateUnInitialized, hr, false ); + + hr = InitializeAudioDeviceAsync(); + } + + return hr; +} + +// +// GetToneSample() +// +// Fills buffer with a tone sample +// +HRESULT WASAPIRenderer::GetToneSample( unsigned int FramesAvailable ) +{ + HRESULT hr = S_OK; + BYTE *Data; + + // Post-Roll Silence + if (m_ToneSource->IsEOF()) + { + hr = m_AudioRenderClient->GetBuffer( FramesAvailable, &Data ); + if (SUCCEEDED( hr )) + { + // Ignore the return + hr = m_AudioRenderClient->ReleaseBuffer( FramesAvailable, AUDCLNT_BUFFERFLAGS_SILENT ); + } + + StopPlaybackAsync(); + } + else if (m_ToneSource->GetBufferLength() <= ( FramesAvailable * m_MixFormat->nBlockAlign )) + { + UINT32 ActualFramesToRead = m_ToneSource->GetBufferLength() / m_MixFormat->nBlockAlign; + UINT32 ActualBytesToRead = ActualFramesToRead * m_MixFormat->nBlockAlign; + + hr = m_AudioRenderClient->GetBuffer( ActualFramesToRead, &Data ); + if (SUCCEEDED( hr )) + { + hr = m_ToneSource->FillSampleBuffer( ActualBytesToRead, Data ); + if (SUCCEEDED( hr )) + { + hr = m_AudioRenderClient->ReleaseBuffer( ActualFramesToRead, 0 ); + } + } + } + + return hr; +} + + diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIRenderer.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIRenderer.h new file mode 100644 index 0000000000000000000000000000000000000000..4249e75af4c64a8484d0bf6377bb2d7d805e34b8 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/WASAPIRenderer.h @@ -0,0 +1,93 @@ +//-------------------------------------------------------------------------------------- +// WASAPIRenderer.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include +#include +#include +#include +#include +#include + +#include "DeviceState.h" +#include "common.h" +#include "ToneSampleGenerator.h" + + + +#pragma once + // User Configurable Arguments for Scenario + struct DEVICEPROPS + { + bool IsHWOffload; + bool IsBackground; + bool IsRawSupported; + bool IsRawChosen; + REFERENCE_TIME hnsBufferDuration; + unsigned long Frequency; + }; + + // Primary WASAPI Renderering Class + class WASAPIRenderer : + public Microsoft::WRL::RuntimeClass< Microsoft::WRL::RuntimeClassFlags< Microsoft::WRL::ClassicCom >, Microsoft::WRL::FtmBase, IActivateAudioInterfaceCompletionHandler > + { + public: + WASAPIRenderer(); + + HRESULT SetProperties( DEVICEPROPS props ); + HRESULT InitializeAudioDeviceAsync(); + HRESULT StartPlaybackAsync(); + HRESULT StopPlaybackAsync(); + HRESULT PausePlaybackAsync(); + + HRESULT SetVolumeOnSession( unsigned int volume ); + DeviceStateChangedEvent^ GetDeviceStateEvent() { return m_DeviceStateChanged; }; + + METHODASYNCCALLBACK( WASAPIRenderer, StartPlayback, OnStartPlayback ); + METHODASYNCCALLBACK( WASAPIRenderer, StopPlayback, OnStopPlayback ); + METHODASYNCCALLBACK( WASAPIRenderer, PausePlayback, OnPausePlayback ); + METHODASYNCCALLBACK( WASAPIRenderer, SampleReady, OnSampleReady ); + + // IActivateAudioInterfaceCompletionHandler + STDMETHOD(ActivateCompleted)( IActivateAudioInterfaceAsyncOperation *operation ); + + private: + ~WASAPIRenderer(); + + HRESULT OnStartPlayback( IMFAsyncResult* pResult ); + HRESULT OnStopPlayback( IMFAsyncResult* pResult ); + HRESULT OnPausePlayback( IMFAsyncResult* pResult ); + HRESULT OnSampleReady( IMFAsyncResult* pResult ); + + HRESULT ConfigureDeviceInternal(); + HRESULT ValidateBufferValue(); + HRESULT OnAudioSampleRequested( bool IsSilence = false ); + HRESULT ConfigureSource(); + UINT32 GetBufferFramesPerPeriod(); + + HRESULT GetToneSample( unsigned int FramesAvailable ); + + private: + Platform::String^ m_DeviceIdString; + unsigned int m_BufferFrames; + HANDLE m_SampleReadyEvent; + MFWORKITEM_KEY m_SampleReadyKey; + std::mutex m_mutex; + + WAVEFORMATEX *m_MixFormat; + + Microsoft::WRL::ComPtr m_AudioClient; + Microsoft::WRL::ComPtr m_AudioRenderClient; + Microsoft::WRL::ComPtr m_SampleReadyAsyncResult; + + DeviceStateChangedEvent^ m_DeviceStateChanged; + DEVICEPROPS m_DeviceProps; + + std::unique_ptr m_ToneSource; + }; + + + diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/common.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/common.h new file mode 100644 index 0000000000000000000000000000000000000000..c19284c7cba9dc4d77bba8c0aab5ac9cb7e45ee5 --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/common.h @@ -0,0 +1,163 @@ +///-------------------------------------------------------------------------------------- + +// Common.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once +#include +#include +#include +#include + +// release and zero out a possible NULL pointer. note this will +// do the release on a temp copy to avoid reentrancy issues that can result from +// callbacks durring the release +template void SafeRelease( __deref_inout_opt T **ppT ) +{ + T *pTTemp = *ppT; // temp copy + *ppT = nullptr; // zero the input + if (pTTemp) + { + pTTemp->Release(); + } +} + +#ifndef SAFE_DELETE +#define SAFE_DELETE(x) { delete x; x = nullptr; } +#endif + +#ifndef SAFE_ARRAYDELETE +#define SAFE_ARRAYDELETE(x) { delete[] x; x = nullptr; } +#endif + +#ifndef METHODASYNCCALLBACK +#define METHODASYNCCALLBACK(Parent, AsyncCallback, pfnCallback) \ +class Callback##AsyncCallback :\ + public IMFAsyncCallback \ +{ \ +public: \ + Callback##AsyncCallback() : \ + _parent(((Parent*)((BYTE*)this - offsetof(Parent, m_x##AsyncCallback)))), \ + _dwQueueID( MFASYNC_CALLBACK_QUEUE_MULTITHREADED ) \ + { \ + } \ +\ + STDMETHOD_( ULONG, AddRef )() \ + { \ + return _parent->AddRef(); \ + } \ + STDMETHOD_( ULONG, Release )() \ + { \ + return _parent->Release(); \ + } \ + STDMETHOD( QueryInterface )( REFIID riid, void **ppvObject ) \ + { \ + if (riid == IID_IMFAsyncCallback || riid == IID_IUnknown) \ + { \ + (*ppvObject) = this; \ + AddRef(); \ + return S_OK; \ + } \ + *ppvObject = NULL; \ + return E_NOINTERFACE; \ + } \ + STDMETHOD( GetParameters )( \ + /* [out] */ __RPC__out DWORD *pdwFlags, \ + /* [out] */ __RPC__out DWORD *pdwQueue) \ + { \ + *pdwFlags = 0; \ + *pdwQueue = _dwQueueID; \ + return S_OK; \ + } \ + STDMETHOD( Invoke )( /* [out] */ __RPC__out IMFAsyncResult * pResult ) \ + { \ + _parent->pfnCallback( pResult ); \ + return S_OK; \ + } \ + void SetQueueID( DWORD dwQueueID ) { _dwQueueID = dwQueueID; } \ +\ +protected: \ + Parent* _parent; \ + DWORD _dwQueueID; \ + \ +} m_x##AsyncCallback; +#endif + +// +// CAsyncState +// +// Used to maintain state during MF Work Item callbacks +class CAsyncState : + public Microsoft::WRL::RuntimeClass, IUnknown> +{ +public: + CAsyncState( Platform::Array^ data, UINT32 size ) : + m_Data(data), + m_Size(size) + { + }; + +public: + Platform::Array^ m_Data; + UINT32 m_Size; + +private: + virtual ~CAsyncState() {}; +}; + +struct RenderBuffer +{ + UINT32 BufferSize; + UINT32 BytesFilled; + BYTE *Buffer; + RenderBuffer *Next; + + RenderBuffer() : + BufferSize(0), + BytesFilled(0), + Buffer( nullptr ), + Next( nullptr ) + { + } + + ~RenderBuffer() + { + SAFE_ARRAYDELETE( Buffer ); + } +}; + +enum RenderSampleType +{ + SampleTypeUnknown, + SampleTypeFloat, + SampleType16BitPCM, +}; + +// +// CalculateMixFormatType() +// +// Determine IEEE Float or PCM samples based on media type +// +inline RenderSampleType CalculateMixFormatType( WAVEFORMATEX *wfx ) +{ + if ( (wfx->wFormatTag == WAVE_FORMAT_PCM) || + ( (wfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE) && + (reinterpret_cast(wfx)->SubFormat == KSDATAFORMAT_SUBTYPE_PCM) ) ) + { + if (wfx->wBitsPerSample == 16) + { + return RenderSampleType::SampleType16BitPCM; + } + } + else if ( (wfx->wFormatTag == WAVE_FORMAT_IEEE_FLOAT) || + ( (wfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE) && + (reinterpret_cast(wfx)->SubFormat == KSDATAFORMAT_SUBTYPE_IEEE_FLOAT) ) ) + { + return RenderSampleType::SampleTypeFloat; + } + + return RenderSampleType::SampleTypeUnknown; +} diff --git a/Samples/Graphics/SimpleTextureUWP12/pch.cpp b/Samples/Audio/SimpleWASAPIPlaySoundUWP/pch.cpp similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/pch.cpp rename to Samples/Audio/SimpleWASAPIPlaySoundUWP/pch.cpp diff --git a/Samples/Audio/SimpleWASAPIPlaySoundUWP/pch.h b/Samples/Audio/SimpleWASAPIPlaySoundUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..5cafcc197464777641c1cd49a9541136cc2b94fe --- /dev/null +++ b/Samples/Audio/SimpleWASAPIPlaySoundUWP/pch.h @@ -0,0 +1,78 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once +#include "Common.h" + +#define _USE_MATH_DEFINES +#include + +#include +#include +#include + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "DDSTextureLoader.h" +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" +#include "SimpleMath.h" +#include "SpriteBatch.h" +#include "SpriteFont.h" + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/Graphics/SimpleTriangleUWP/Assets/Logo.png b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/Logo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Assets/Logo.png rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/Logo.png diff --git a/Samples/Graphics/SimpleTriangleUWP/Assets/SmallLogo.png b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/SmallLogo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Assets/SmallLogo.png rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/SmallLogo.png diff --git a/Samples/Graphics/SimpleTriangleUWP/Assets/SplashScreen.png b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/SplashScreen.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Assets/SplashScreen.png rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/SplashScreen.png diff --git a/Samples/Graphics/SimpleTriangleUWP/Assets/StoreLogo.png b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/StoreLogo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Assets/StoreLogo.png rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/StoreLogo.png diff --git a/Samples/Graphics/SimpleTriangleUWP/Assets/WideLogo.png b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/WideLogo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Assets/WideLogo.png rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/WideLogo.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/seafloor.dds b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/seafloor.dds similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/seafloor.dds rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/seafloor.dds diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/windowslogo.dds b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/windowslogo.dds similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Assets/windowslogo.dds rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Assets/windowslogo.dds diff --git a/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DeviceResources.cpp b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DeviceResources.h b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.cpp b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.cpp similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.cpp rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.cpp diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.h b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.h similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.h rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.h diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.sln b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.sln similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.sln rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.sln diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj similarity index 97% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj index 5a50fa0a9b3fc852f4d523233e8f564af2f56fa0..4b094416e365a46c38b4c33714df33ab64db4d56 100644 --- a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj +++ b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj @@ -1,4 +1,4 @@ - + @@ -100,9 +100,6 @@ DirectXTKSimpleSample_TemporaryKey.pfx - True - Always - x86 @@ -270,4 +267,4 @@ - + \ No newline at end of file diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj.filters b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj.filters similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj.filters rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample.vcxproj.filters diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample_TemporaryKey.pfx b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample_TemporaryKey.pfx similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample_TemporaryKey.pfx rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/DirectXTKSimpleSample_TemporaryKey.pfx diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Main.cpp b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Main.cpp similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Main.cpp rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Main.cpp diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Package.appxmanifest b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Package.appxmanifest similarity index 90% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Package.appxmanifest rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Package.appxmanifest index 81d0b3b5dd5a42965de0489f768efe9112b4eb83..2b7799c636943220e63653052e3ff67ec19e3b74 100644 --- a/Samples/Graphics/DirectXTKSimpleSampleUWP/Package.appxmanifest +++ b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Package.appxmanifest @@ -8,14 +8,14 @@ DirectXTKSimpleSample - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/Readme.docx b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Readme.docx similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/Readme.docx rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/Readme.docx diff --git a/Samples/Graphics/SimpleTriangleUWP/StepTimer.h b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/StepTimer.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/StepTimer.h rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/StepTimer.h diff --git a/Samples/Graphics/SimpleTriangleUWP/pch.cpp b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/pch.cpp similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/pch.cpp rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/pch.cpp diff --git a/Samples/Graphics/DirectXTKSimpleSampleUWP/pch.h b/Samples/IntroGraphics/DirectXTKSimpleSampleUWP/pch.h similarity index 100% rename from Samples/Graphics/DirectXTKSimpleSampleUWP/pch.h rename to Samples/IntroGraphics/DirectXTKSimpleSampleUWP/pch.h diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierDS.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierDS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierDS.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_fracEven.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_fracEven.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_fracEven.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_fracOdd.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_fracOdd.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_fracOdd.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_int.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_int.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierHS_int.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierPS.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierPS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierPS.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierVS.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierVS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/BezierVS.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/Graphics/SimpleTriangleUWP12/Assets/Logo.png b/Samples/IntroGraphics/SimpleBezierUWP/Assets/Logo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Assets/Logo.png rename to Samples/IntroGraphics/SimpleBezierUWP/Assets/Logo.png diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/SimpleBezier.hlsli b/Samples/IntroGraphics/SimpleBezierUWP/Assets/SimpleBezier.hlsli new file mode 100644 index 0000000000000000000000000000000000000000..3d0ebc124f3ea649f78c153027927a25770b8ad4 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/SimpleBezier.hlsli @@ -0,0 +1,229 @@ +//-------------------------------------------------------------------------------------- +// SimpleBezier.hlsli +// +// Shader demonstrating DirectX 11 tesselation of a bezier surface +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + + +// The input patch size. In this sample, it is 16 control points. +// This value should match the call to IASetPrimitiveTopology() +#define INPUT_PATCH_SIZE 16 + +// The output patch size. In this sample, it is also 16 control points. +#define OUTPUT_PATCH_SIZE 16 + +//-------------------------------------------------------------------------------------- +// Constant Buffers +//-------------------------------------------------------------------------------------- +cbuffer cbPerFrame : register(b0) +{ + row_major matrix g_mViewProjection; + float3 g_cameraWorldPos; + float g_tessellationFactor; +}; + +//-------------------------------------------------------------------------------------- +// Vertex shader section +//-------------------------------------------------------------------------------------- +struct VS_CONTROL_POINT_INPUT +{ + float3 pos : POSITION; +}; + +struct VS_CONTROL_POINT_OUTPUT +{ + float3 pos : POSITION; +}; + +//-------------------------------------------------------------------------------------- +// This simple vertex shader passes the control points straight through to the +// hull shader. In a more complex scene, you might transform the control points +// or perform skinning at this step. +// +// The input to the vertex shader comes from the vertex buffer. +// +// The output from the vertex shader will go into the hull shader. +//-------------------------------------------------------------------------------------- +VS_CONTROL_POINT_OUTPUT BezierVS(VS_CONTROL_POINT_INPUT Input) +{ + VS_CONTROL_POINT_OUTPUT output; + + output.pos = Input.pos; + + return output; +} + +//-------------------------------------------------------------------------------------- +// Constant data function for the BezierHS. This is executed once per patch. +//-------------------------------------------------------------------------------------- +struct HS_CONSTANT_DATA_OUTPUT +{ + float Edges[4] : SV_TessFactor; + float Inside[2] : SV_InsideTessFactor; +}; + +struct HS_OUTPUT +{ + float3 pos : BEZIERPOS; +}; + +//-------------------------------------------------------------------------------------- +// This constant hull shader is executed once per patch. For the simple Mobius strip +// model, it will be executed 4 times. In this sample, we set the tessellation factor +// via SV_TessFactor and SV_InsideTessFactor for each patch. In a more complex scene, +// you might calculate a variable tessellation factor based on the camera's distance. +//-------------------------------------------------------------------------------------- +HS_CONSTANT_DATA_OUTPUT BezierConstantHS(InputPatch< VS_CONTROL_POINT_OUTPUT, INPUT_PATCH_SIZE > ip, + uint PatchID : SV_PrimitiveID) +{ + HS_CONSTANT_DATA_OUTPUT output; + + float TessAmount = g_tessellationFactor; + + output.Edges[0] = output.Edges[1] = output.Edges[2] = output.Edges[3] = TessAmount; + output.Inside[0] = output.Inside[1] = TessAmount; + + return output; +} + +//-------------------------------------------------------------------------------------- +// BezierHS +// The hull shader is called once per output control point, which is specified with +// outputcontrolpoints. For this sample, we take the control points from the vertex +// shader and pass them directly off to the domain shader. In a more complex scene, +// you might perform a basis conversion from the input control points into a Bezier +// patch, such as the SubD11 SimpleBezier. +// +// The input to the hull shader comes from the vertex shader. +// +// The output from the hull shader will go to the domain shader. +// The tessellation factor, topology, and partition mode will go to the fixed function +// tessellator stage to calculate the UVW barycentric coordinates and domain points. +//-------------------------------------------------------------------------------------- +[domain("quad")] +[partitioning(BEZIER_HS_PARTITION)] +[outputtopology("triangle_cw")] +[outputcontrolpoints(OUTPUT_PATCH_SIZE)] +[patchconstantfunc("BezierConstantHS")] +HS_OUTPUT BezierHS(InputPatch< VS_CONTROL_POINT_OUTPUT, INPUT_PATCH_SIZE > p, + uint i : SV_OutputControlPointID, + uint PatchID : SV_PrimitiveID) +{ + HS_OUTPUT output; + output.pos = p[i].pos; + return output; +} + +//-------------------------------------------------------------------------------------- +// Bezier evaluation domain shader section +//-------------------------------------------------------------------------------------- +struct DS_OUTPUT +{ + float4 pos : SV_POSITION; + float3 worldPos : WORLDPOS; + float3 normal : NORMAL; +}; + +//-------------------------------------------------------------------------------------- +float4 BernsteinBasis(float t) +{ + float invT = 1.0f - t; + + return float4(invT * invT * invT, + 3.0f * t * invT * invT, + 3.0f * t * t * invT, + t * t * t); +} + +//-------------------------------------------------------------------------------------- +float4 dBernsteinBasis(float t) +{ + float invT = 1.0f - t; + + return float4(-3 * invT * invT, + 3 * invT * invT - 6 * t * invT, + 6 * t * invT - 3 * t * t, + 3 * t * t); +} + +//-------------------------------------------------------------------------------------- +float3 EvaluateBezier(const OutputPatch< HS_OUTPUT, OUTPUT_PATCH_SIZE > BezPatch, + float4 BasisU, + float4 BasisV) +{ + float3 value = float3(0, 0, 0); + value = BasisV.x * (BezPatch[0].pos * BasisU.x + BezPatch[1].pos * BasisU.y + BezPatch[2].pos * BasisU.z + BezPatch[3].pos * BasisU.w); + value += BasisV.y * (BezPatch[4].pos * BasisU.x + BezPatch[5].pos * BasisU.y + BezPatch[6].pos * BasisU.z + BezPatch[7].pos * BasisU.w); + value += BasisV.z * (BezPatch[8].pos * BasisU.x + BezPatch[9].pos * BasisU.y + BezPatch[10].pos * BasisU.z + BezPatch[11].pos * BasisU.w); + value += BasisV.w * (BezPatch[12].pos * BasisU.x + BezPatch[13].pos * BasisU.y + BezPatch[14].pos * BasisU.z + BezPatch[15].pos * BasisU.w); + + return value; +} + + +//-------------------------------------------------------------------------------------- +// The domain shader is run once per vertex and calculates the final vertex's position +// and attributes. It receives the UVW from the fixed function tessellator and the +// control point outputs from the hull shader. Since we are using the DirectX 11 +// Tessellation pipeline, it is the domain shader's responsibility to calculate the +// final SV_POSITION for each vertex. In this sample, we evaluate the vertex's +// position using a Bernstein polynomial and the normal is calculated as the cross +// product of the U and V derivatives. +// +// The input SV_DomainLocation to the domain shader comes from fixed function +// tessellator. And the OutputPatch comes from the hull shader. From these, you +// must calculate the final vertex position, color, texcoords, and other attributes. +// +// The output from the domain shader will be a vertex that will go to the video card's +// rasterization pipeline and get drawn to the screen. +//-------------------------------------------------------------------------------------- +[domain("quad")] +DS_OUTPUT BezierDS(HS_CONSTANT_DATA_OUTPUT input, + float2 UV : SV_DomainLocation, + const OutputPatch< HS_OUTPUT, OUTPUT_PATCH_SIZE > BezPatch) +{ + float4 BasisU = BernsteinBasis(UV.x); + float4 BasisV = BernsteinBasis(UV.y); + float4 dBasisU = dBernsteinBasis(UV.x); + float4 dBasisV = dBernsteinBasis(UV.y); + + float3 worldPos = EvaluateBezier(BezPatch, BasisU, BasisV); + float3 tangent = EvaluateBezier(BezPatch, dBasisU, BasisV); + float3 biTangent = EvaluateBezier(BezPatch, BasisU, dBasisV); + float3 normal = normalize(cross(tangent, biTangent)); + + DS_OUTPUT output; + output.pos = mul(float4(worldPos, 1), g_mViewProjection); + output.worldPos = worldPos; + output.normal = normal; + + return output; +} + +//-------------------------------------------------------------------------------------- +// Smooth shading pixel shader section +//-------------------------------------------------------------------------------------- + + +//-------------------------------------------------------------------------------------- +// The pixel shader works the same as it would in a normal graphics pipeline. +// In this sample, it performs very simple N dot L lighting. +//-------------------------------------------------------------------------------------- +float4 BezierPS(DS_OUTPUT Input) : SV_TARGET +{ + float3 N = normalize(Input.normal); + float3 L = normalize(Input.worldPos - g_cameraWorldPos); + return abs(dot(N, L)) * float4(1, 0, 0, 1); +} + +//-------------------------------------------------------------------------------------- +// Solid color shading pixel shader (used for wireframe overlay) +//-------------------------------------------------------------------------------------- +float4 SolidColorPS(DS_OUTPUT Input) : SV_TARGET +{ + // Return a dark green color + return float4(0, 0.25, 0, 1); +} diff --git a/Samples/Graphics/SimpleTriangleUWP12/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleBezierUWP/Assets/SmallLogo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Assets/SmallLogo.png rename to Samples/IntroGraphics/SimpleBezierUWP/Assets/SmallLogo.png diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Assets/SolidColorPS.hlsl b/Samples/IntroGraphics/SimpleBezierUWP/Assets/SolidColorPS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..c65077845a509a493c769b4c85a72d2827e0bc15 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Assets/SolidColorPS.hlsl @@ -0,0 +1 @@ +#include "SimpleBezier.hlsli" \ No newline at end of file diff --git a/Samples/Graphics/SimpleTriangleUWP12/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleBezierUWP/Assets/SplashScreen.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Assets/SplashScreen.png rename to Samples/IntroGraphics/SimpleBezierUWP/Assets/SplashScreen.png diff --git a/Samples/Graphics/SimpleTriangleUWP12/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleBezierUWP/Assets/StoreLogo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Assets/StoreLogo.png rename to Samples/IntroGraphics/SimpleBezierUWP/Assets/StoreLogo.png diff --git a/Samples/Graphics/SimpleTriangleUWP12/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleBezierUWP/Assets/WideLogo.png similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Assets/WideLogo.png rename to Samples/IntroGraphics/SimpleBezierUWP/Assets/WideLogo.png diff --git a/Samples/IntroGraphics/SimpleBezierUWP/DeviceResources.cpp b/Samples/IntroGraphics/SimpleBezierUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/DeviceResources.h b/Samples/IntroGraphics/SimpleBezierUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Main.cpp b/Samples/IntroGraphics/SimpleBezierUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..45d8f8a1ccd7e00b2c0c49af99f962e4c4e9fb00 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleBezier.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Package.appxmanifest b/Samples/IntroGraphics/SimpleBezierUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..bc780d85c82355eb815f40fd014dec348df44fa4 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + SimpleBezier + Xbox Advanced Technology Group + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/Readme.docx b/Samples/IntroGraphics/SimpleBezierUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..0e57b684df7fcd85137ba1462aae8f7c9ead0728 Binary files /dev/null and b/Samples/IntroGraphics/SimpleBezierUWP/Readme.docx differ diff --git a/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.cpp b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0f085f0e97c938379c0d05def708d626d36b573f --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.cpp @@ -0,0 +1,574 @@ +//-------------------------------------------------------------------------------------- +// SimpleBezier.cpp +// +// This sample demonstrates the basic usage of the DirectX 11 tessellation feature to +// render a simple cubic Bezier patch. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleBezier.h" + +#include "DirectXHelpers.h" +#include "ATGColors.h" +#include "ReadData.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +#pragma region Globals +// Global variables +namespace +{ + // Help menu text + const wchar_t* c_sampleTitle = L"Simple Bezier Sample"; + const wchar_t* c_sampleDescription = L"Demonstrates how to create hull and domain shaders to draw a\ntessellated Bezier surface representing a Mobius strip."; + const ATG::HelpButtonAssignment c_helpButtons[] = { + { ATG::HelpID::MENU_BUTTON, L"Show/Hide Help" }, + { ATG::HelpID::VIEW_BUTTON, L"Exit" }, + { ATG::HelpID::LEFT_STICK, L"Rotate Camera" }, + { ATG::HelpID::LEFT_TRIGGER, L"Decrease Subdivisions" }, + { ATG::HelpID::RIGHT_TRIGGER, L"Increase Subdivisions" }, + { ATG::HelpID::Y_BUTTON, L"Toggle Wireframe" }, + { ATG::HelpID::A_BUTTON, L"Fractional Partitioning (Even)" }, + { ATG::HelpID::B_BUTTON, L"Fractional Partitioning (Odd)" }, + { ATG::HelpID::X_BUTTON, L"Integer Partitioning" }, + }; + + // Min and max divisions of the patch per side for the slider control + const float c_minDivs = 4; + const float c_maxDivs = 16; + // Startup subdivisions per side + const float c_defaultSubdivs = 8.0f; + // Camera's rotation angle per step + const float c_rotationAnglePerStep = XM_2PI / 360.0f; + + // Initial camera setup + const XMVECTOR c_cameraEye = XMVectorSet(0.0f, 0.45f, 2.7f, 0.0f); + const XMVECTOR c_cameraAt = XMVectorSet(0.0f, 0.0f, 0.0f, 0.0f); + const XMVECTOR c_cameraUp = XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f); + + // Draw the mesh with shaded triangles at start. + const bool c_defaultWireframeRendering = false; + + // Simple Bezier patch for a Mobius strip. + // 4 patches with 16 control points each. + const XMFLOAT3 c_mobiusStrip[64] = { + { 1.0f, -0.5f, 0.0f }, + { 1.0f, -0.5f, 0.5f }, + { 0.5f, -0.3536f, 1.354f }, + { 0.0f, -0.3536f, 1.354f }, + { 1.0f, -0.1667f, 0.0f }, + { 1.0f, -0.1667f, 0.5f }, + { 0.5f, -0.1179f, 1.118f }, + { 0.0f, -0.1179f, 1.118f }, + { 1.0f, 0.1667f, 0.0f }, + { 1.0f, 0.1667f, 0.5f }, + { 0.5f, 0.1179f, 0.8821f }, + { 0.0f, 0.1179f, 0.8821f }, + { 1.0f, 0.5f, 0.0f }, + { 1.0f, 0.5f, 0.5f }, + { 0.5f, 0.3536f, 0.6464f }, + { 0.0f, 0.3536f, 0.6464f }, + { 0.0f, -0.3536f, 1.354f }, + { -0.5f, -0.3536f, 1.354f }, + { -1.5f, 0.0f, 0.5f }, + { -1.5f, 0.0f, 0.0f }, + { 0.0f, -0.1179f, 1.118f }, + { -0.5f, -0.1179f, 1.118f }, + { -1.167f, 0.0f, 0.5f }, + { -1.167f, 0.0f, 0.0f }, + { 0.0f, 0.1179f, 0.8821f }, + { -0.5f, 0.1179f, 0.8821f }, + { -0.8333f, 0.0f, 0.5f }, + { -0.8333f, 0.0f, 0.0f }, + { 0.0f, 0.3536f, 0.6464f }, + { -0.5f, 0.3536f, 0.6464f }, + { -0.5f, 0.0f, 0.5f }, + { -0.5f, 0.0f, 0.0f }, + { -1.5f, 0.0f, 0.0f }, + { -1.5f, 0.0f, -0.5f }, + { -0.5f, 0.3536f, -1.354f }, + { 0.0f, 0.3536f, -1.354f }, + { -1.167f, 0.0f, 0.0f }, + { -1.167f, 0.0f, -0.5f }, + { -0.5f, 0.1179f, -1.118f }, + { 0.0f, 0.1179f, -1.118f }, + { -0.8333f, 0.0f, 0.0f }, + { -0.8333f, 0.0f, -0.5f }, + { -0.5f, -0.1179f, -0.8821f }, + { 0.0f, -0.1179f, -0.8821f }, + { -0.5f, 0.0f, 0.0f }, + { -0.5f, 0.0f, -0.5f }, + { -0.5f, -0.3536f, -0.6464f }, + { 0.0f, -0.3536f, -0.6464f }, + { 0.0f, 0.3536f, -1.354f }, + { 0.5f, 0.3536f, -1.354f }, + { 1.0f, 0.5f, -0.5f }, + { 1.0f, 0.5f, 0.0f }, + { 0.0f, 0.1179f, -1.118f }, + { 0.5f, 0.1179f, -1.118f }, + { 1.0f, 0.1667f, -0.5f }, + { 1.0f, 0.1667f, 0.0f }, + { 0.0f, -0.1179f, -0.8821f }, + { 0.5f, -0.1179f, -0.8821f }, + { 1.0f, -0.1667f, -0.5f }, + { 1.0f, -0.1667f, 0.0f }, + { 0.0f, -0.3536f, -0.6464f }, + { 0.5f, -0.3536f, -0.6464f }, + { 1.0f, -0.5f, -0.5f }, + { 1.0f, -0.5f, 0.0f }, + }; +} +#pragma endregion + +Sample::Sample() + : m_subdivs(c_defaultSubdivs) + , m_drawWires(c_defaultWireframeRendering) + , m_partitionMode(PartitionMode::PartitionInteger) + , m_showHelp(false) +{ + // Use gamma-correct rendering. Hardware tessellation requires Feature Level 11.0 or later. + m_deviceResources = std::make_unique(DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, + DXGI_FORMAT_D32_FLOAT, 2, D3D_FEATURE_LEVEL_11_0); + m_deviceResources->RegisterDeviceNotify(this); + + m_help = std::make_unique(c_sampleTitle, c_sampleDescription, c_helpButtons, _countof(c_helpButtons), true); +} + +// Initializes the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const&) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + auto pad = m_gamePad->GetState(0); + if (pad.IsConnected()) + { + m_gamePadButtons.Update(pad); + } + else + { + m_gamePadButtons.Reset(); + } + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + if ((!m_showHelp && m_keyboardButtons.IsKeyPressed(Keyboard::Escape)) || pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + if (m_keyboardButtons.IsKeyPressed(Keyboard::F1) || m_gamePadButtons.menu == GamePad::ButtonStateTracker::PRESSED) + { + m_showHelp = !m_showHelp; + } + else if (m_showHelp && (m_keyboardButtons.IsKeyPressed(Keyboard::Escape) || m_gamePadButtons.b == GamePad::ButtonStateTracker::PRESSED)) + { + m_showHelp = false; + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::W) || m_gamePadButtons.y == GamePad::ButtonStateTracker::PRESSED) + { + m_drawWires = !m_drawWires; + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::D1) || m_keyboardButtons.IsKeyPressed(Keyboard::NumPad1) || + m_gamePadButtons.x == GamePad::ButtonStateTracker::PRESSED) + { + m_partitionMode = PartitionMode::PartitionInteger; + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::D2) || m_keyboardButtons.IsKeyPressed(Keyboard::NumPad2) || + m_gamePadButtons.a == GamePad::ButtonStateTracker::PRESSED) + { + m_partitionMode = PartitionMode::PartitionFractionalEven; + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::D3) || m_keyboardButtons.IsKeyPressed(Keyboard::NumPad3) || + (!m_showHelp && m_gamePadButtons.b == GamePad::ButtonStateTracker::PRESSED)) + { + m_partitionMode = PartitionMode::PartitionFractionalOdd; + } + + if (kb.Down || pad.IsLeftTriggerPressed()) + { + m_subdivs = std::max(m_subdivs - 0.1f, c_minDivs); + } + + if (kb.Up || pad.IsRightTriggerPressed()) + { + m_subdivs = std::min(m_subdivs + 0.1f, c_maxDivs); + } + + float rotationAxisY = 0.0f; + + if (pad.thumbSticks.leftX != 0.0f) + { + rotationAxisY = -pad.thumbSticks.leftX * c_rotationAnglePerStep; + } + else if (kb.Left) + { + rotationAxisY = c_rotationAnglePerStep; + } + else if (kb.Right) + { + rotationAxisY = -c_rotationAnglePerStep; + } + + if (rotationAxisY != 0.0f) + { + XMVECTOR eye = XMLoadFloat3(&m_cameraEye); + eye = XMVector3Transform(eye, XMMatrixRotationY(rotationAxisY)); + XMMATRIX view = XMMatrixLookAtLH(eye, c_cameraAt, c_cameraUp); + XMStoreFloat4x4(&m_viewMatrix, view); + XMStoreFloat3(&m_cameraEye, eye); + } + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + if (m_showHelp) + { + //Clear hull and domain shaders so help can render. + context->HSSetShader(nullptr, nullptr, 0); + context->DSSetShader(nullptr, nullptr, 0); + + m_help->Render(); + } + else + { + //Reset state that may have been modified by showing help. + context->OMSetBlendState(m_states->Opaque(), Colors::Black, 0xFFFFFFFF); + context->OMSetDepthStencilState(m_states->DepthDefault(), 0); + + XMMATRIX view = XMLoadFloat4x4(&m_viewMatrix); + XMMATRIX projection = XMLoadFloat4x4(&m_projectionMatrix); + XMMATRIX viewProjectionMatrix = XMMatrixMultiply(view, projection); + + // Update per-frame variables. + auto d3dBuffer = m_cbPerFrame.Get(); + + { + MapGuard mappedResource(context, d3dBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0); + + ConstantBuffer* data = reinterpret_cast(mappedResource.get()); + + XMStoreFloat4x4(&data->viewProjectionMatrix, viewProjectionMatrix); + data->cameraWorldPos = m_cameraEye; + data->tessellationFactor = (float)m_subdivs; + } + + // Render the meshes. + // Bind all of the CBs. + context->VSSetConstantBuffers(0, 1, &d3dBuffer); + context->HSSetConstantBuffers(0, 1, &d3dBuffer); + context->DSSetConstantBuffers(0, 1, &d3dBuffer); + context->PSSetConstantBuffers(0, 1, &d3dBuffer); + + // Set the shaders. + context->VSSetShader(m_vertexShader.Get(), nullptr, 0); + + // For this sample, choose either the "integer", "fractional_even", + // or "fractional_odd" hull shader. + if (m_partitionMode == PartitionMode::PartitionInteger) + { + context->HSSetShader(m_hullShaderInteger.Get(), nullptr, 0); + } + else if (m_partitionMode == PartitionMode::PartitionFractionalEven) + { + context->HSSetShader(m_hullShaderFracEven.Get(), nullptr, 0); + } + else if (m_partitionMode == PartitionMode::PartitionFractionalOdd) + { + context->HSSetShader(m_hullShaderFracOdd.Get(), nullptr, 0); + } + + context->DSSetShader(m_domainShader.Get(), nullptr, 0); + context->GSSetShader(nullptr, nullptr, 0); + + // Optionally draw the wireframe. + if (m_drawWires) + { + context->PSSetShader(m_solidColorPS.Get(), nullptr, 0); + context->RSSetState(m_states->Wireframe()); + } + else + { + context->PSSetShader(m_pixelShader.Get(), nullptr, 0); + context->RSSetState(m_states->CullNone()); + } + + // Set the input assembler. + // This sample uses patches with 16 control points each. + // Although the Mobius strip only needs to use a vertex buffer, + // you can use an index buffer as well by calling IASetIndexBuffer(). + context->IASetInputLayout(m_inputLayout.Get()); + UINT stride = sizeof(XMFLOAT3); + UINT offset = 0; + context->IASetVertexBuffers(0, 1, m_controlPointVB.GetAddressOf(), &stride, &offset); + context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST); + + // Draw the mesh + context->Draw(_countof(c_mobiusStrip), 0); + } + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + auto depthStencil = m_deviceResources->GetDepthStencilView(); + + context->ClearRenderTargetView(renderTarget, ATG::ColorsLinear::Background); + context->ClearDepthStencilView(depthStencil, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); + + context->OMSetRenderTargets(1, &renderTarget, depthStencil); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto device = m_deviceResources->GetD3DDevice(); + auto context = m_deviceResources->GetD3DDeviceContext(); + + m_states = std::make_unique(device); + + CreateShaders(); + + // Initialize the world and view matrices. + XMMATRIX world = XMMatrixIdentity(); + XMMATRIX view = XMMatrixLookAtLH(c_cameraEye, c_cameraAt, c_cameraUp); + XMStoreFloat4x4(&m_worldMatrix, world); + XMStoreFloat4x4(&m_viewMatrix, view); + XMStoreFloat3(&m_cameraEye, c_cameraEye); + + m_help->RestoreDevice(context); +} + +// Creates and initializes shaders and their data. +void Sample::CreateShaders() +{ + auto device = m_deviceResources->GetD3DDevice(); + + // Load and create shaders. + auto vertexShaderBlob = DX::ReadData(L"BezierVS.cso"); + DX::ThrowIfFailed( + device->CreateVertexShader(vertexShaderBlob.data(), vertexShaderBlob.size(), + nullptr, m_vertexShader.ReleaseAndGetAddressOf())); + + auto hullShaderIntegerBlob = DX::ReadData(L"BezierHS_int.cso"); + DX::ThrowIfFailed( + device->CreateHullShader(hullShaderIntegerBlob.data(), hullShaderIntegerBlob.size(), + nullptr, m_hullShaderInteger.ReleaseAndGetAddressOf())); + + auto hullShaderFracEvenBlob = DX::ReadData(L"BezierHS_fracEven.cso"); + DX::ThrowIfFailed( + device->CreateHullShader(hullShaderFracEvenBlob.data(), hullShaderFracEvenBlob.size(), + nullptr, m_hullShaderFracEven.ReleaseAndGetAddressOf())); + + auto hullShaderFracOddBlob = DX::ReadData(L"BezierHS_fracOdd.cso"); + DX::ThrowIfFailed( + device->CreateHullShader(hullShaderFracOddBlob.data(), hullShaderFracOddBlob.size(), + nullptr, m_hullShaderFracOdd.ReleaseAndGetAddressOf())); + + auto domainShaderBlob = DX::ReadData(L"BezierDS.cso"); + DX::ThrowIfFailed( + device->CreateDomainShader(domainShaderBlob.data(), domainShaderBlob.size(), + nullptr, m_domainShader.ReleaseAndGetAddressOf())); + + auto pixelShaderBlob = DX::ReadData(L"BezierPS.cso"); + DX::ThrowIfFailed( + device->CreatePixelShader(pixelShaderBlob.data(), pixelShaderBlob.size(), + nullptr, m_pixelShader.ReleaseAndGetAddressOf())); + + auto solidColorPSBlob = DX::ReadData(L"SolidColorPS.cso"); + DX::ThrowIfFailed( + device->CreatePixelShader(solidColorPSBlob.data(), solidColorPSBlob.size(), + nullptr, m_solidColorPS.ReleaseAndGetAddressOf())); + + + // Create our vertex input layout. + static const D3D11_INPUT_ELEMENT_DESC c_inputElementDesc[] = + { + { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + }; + + DX::ThrowIfFailed( + device->CreateInputLayout(c_inputElementDesc, _countof(c_inputElementDesc), + vertexShaderBlob.data(), vertexShaderBlob.size(), + m_inputLayout.ReleaseAndGetAddressOf())); + + + // Create constant buffers. + D3D11_BUFFER_DESC bufferDesc; + bufferDesc.Usage = D3D11_USAGE_DYNAMIC; + bufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; + bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; + bufferDesc.MiscFlags = 0; + bufferDesc.ByteWidth = sizeof(ConstantBuffer); + + DX::ThrowIfFailed(device->CreateBuffer(&bufferDesc, nullptr, m_cbPerFrame.ReleaseAndGetAddressOf())); + + + // Create vertex buffer. + D3D11_BUFFER_DESC vbDesc = { 0 }; + vbDesc.ByteWidth = sizeof(XMFLOAT3) * ARRAYSIZE(c_mobiusStrip); + vbDesc.Usage = D3D11_USAGE_DEFAULT; + vbDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; + + D3D11_SUBRESOURCE_DATA vbInitData = { 0 }; + vbInitData.pSysMem = c_mobiusStrip; + + DX::ThrowIfFailed(device->CreateBuffer(&vbDesc, &vbInitData, m_controlPointVB.ReleaseAndGetAddressOf())); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + auto size = m_deviceResources->GetOutputSize(); + + XMMATRIX projection = XMMatrixPerspectiveFovLH(XM_PIDIV4, float(size.right) / float(size.bottom), 0.01f, 100.0f); + + XMFLOAT4X4 orient = m_deviceResources->GetOrientationTransform3D(); + + XMStoreFloat4x4(&m_projectionMatrix, projection * XMLoadFloat4x4(&orient)); + + m_help->SetWindow(size); +} + +void Sample::OnDeviceLost() +{ + m_states.reset(); + m_inputLayout.Reset(); + m_vertexShader.Reset(); + m_hullShaderInteger.Reset(); + m_hullShaderFracEven.Reset(); + m_hullShaderFracOdd.Reset(); + m_domainShader.Reset(); + m_pixelShader.Reset(); + m_solidColorPS.Reset(); + m_controlPointVB.Reset(); + m_cbPerFrame.Reset(); + m_rasterizerStateSolid.Reset(); + m_rasterizerStateWireframe.Reset(); + + m_help->ReleaseDevice(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion diff --git a/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.h b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.h new file mode 100644 index 0000000000000000000000000000000000000000..9c0e55be8aa0300fcc0c7c424b135a2dacd9b6d6 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.h @@ -0,0 +1,113 @@ +//-------------------------------------------------------------------------------------- +// SimpleBezier.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" +#include "ControllerHelp.h" + + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateShaders(); + void CreateWindowSizeDependentResources(); + + // Device resources + std::unique_ptr m_deviceResources; + + // Rendering loop timer + DX::StepTimer m_timer; + + // Input devices + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; + + // Sample objects + struct ConstantBuffer + { + DirectX::XMFLOAT4X4 viewProjectionMatrix; + DirectX::XMFLOAT3 cameraWorldPos; + float tessellationFactor; + }; + + enum class PartitionMode + { + PartitionInteger, + PartitionFractionalEven, + PartitionFractionalOdd + }; + + std::unique_ptr m_states; + + Microsoft::WRL::ComPtr m_inputLayout; + Microsoft::WRL::ComPtr m_vertexShader; + Microsoft::WRL::ComPtr m_hullShaderInteger; + Microsoft::WRL::ComPtr m_hullShaderFracEven; + Microsoft::WRL::ComPtr m_hullShaderFracOdd; + Microsoft::WRL::ComPtr m_domainShader; + Microsoft::WRL::ComPtr m_pixelShader; + Microsoft::WRL::ComPtr m_solidColorPS; + + Microsoft::WRL::ComPtr m_controlPointVB; // Control points for mesh + Microsoft::WRL::ComPtr m_cbPerFrame; + + Microsoft::WRL::ComPtr m_rasterizerStateSolid; + Microsoft::WRL::ComPtr m_rasterizerStateWireframe; + + //Control variables + float m_subdivs; + bool m_drawWires; + PartitionMode m_partitionMode; + + DirectX::XMFLOAT4X4 m_worldMatrix; + DirectX::XMFLOAT4X4 m_viewMatrix; + DirectX::XMFLOAT4X4 m_projectionMatrix; + DirectX::XMFLOAT3 m_cameraEye; + + std::unique_ptr m_help; + bool m_showHelp; +}; \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.sln b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.sln new file mode 100644 index 0000000000000000000000000000000000000000..78402f16cb0239dc555ce863b67bfca23572f82c --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimpleBezier", "SimpleBezier.vcxproj", "{F2BD98DC-269F-4239-9C5D-20CED0B9E882}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|ARM.ActiveCfg = Debug|ARM + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|ARM.Build.0 = Debug|ARM + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|ARM.Deploy.0 = Debug|ARM + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|x64.ActiveCfg = Debug|x64 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|x64.Build.0 = Debug|x64 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|x64.Deploy.0 = Debug|x64 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|x86.ActiveCfg = Debug|Win32 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|x86.Build.0 = Debug|Win32 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Debug|x86.Deploy.0 = Debug|Win32 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|ARM.ActiveCfg = Release|ARM + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|ARM.Build.0 = Release|ARM + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|ARM.Deploy.0 = Release|ARM + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|x64.ActiveCfg = Release|x64 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|x64.Build.0 = Release|x64 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|x64.Deploy.0 = Release|x64 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|x86.ActiveCfg = Release|Win32 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|x86.Build.0 = Release|Win32 + {F2BD98DC-269F-4239-9C5D-20CED0B9E882}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.vcxproj b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..06f61076f885cc6e72dace44448ae35f3b34a507 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.vcxproj @@ -0,0 +1,479 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {f2bd98dc-269f-4239-9c5d-20ced0b9e882} + DirectXApp + SimpleBezier + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SimpleBezier_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + Designer + + + true + + + true + + + true + + + + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + BezierDS + Domain + BEZIER_HS_PARTITION=\"integer\" + BezierDS + Domain + BEZIER_HS_PARTITION=\"integer\" + BezierDS + Domain + BEZIER_HS_PARTITION=\"integer\" + BezierDS + Domain + BEZIER_HS_PARTITION=\"integer\" + BezierDS + Domain + BEZIER_HS_PARTITION=\"integer\" + BezierDS + Domain + BEZIER_HS_PARTITION=\"integer\" + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + + + BezierHS + Hull + BEZIER_HS_PARTITION=\"fractional_even\" + BezierHS + Hull + BEZIER_HS_PARTITION=\"fractional_even\" + BezierHS + Hull + BEZIER_HS_PARTITION=\"fractional_even\" + BezierHS + Hull + BEZIER_HS_PARTITION=\"fractional_even\" + BezierHS + Hull + BEZIER_HS_PARTITION=\"fractional_even\" + BezierHS + Hull + BEZIER_HS_PARTITION=\"fractional_even\" + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + + + BEZIER_HS_PARTITION=\"fractional_odd\" + BEZIER_HS_PARTITION=\"fractional_odd\" + BEZIER_HS_PARTITION=\"fractional_odd\" + BEZIER_HS_PARTITION=\"fractional_odd\" + BEZIER_HS_PARTITION=\"fractional_odd\" + BEZIER_HS_PARTITION=\"fractional_odd\" + BezierHS + Hull + BezierHS + Hull + BezierHS + Hull + BezierHS + Hull + BezierHS + Hull + BezierHS + Hull + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + + + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + BezierHS + BezierHS + BezierHS + BezierHS + BezierHS + BezierHS + Hull + Hull + Hull + Hull + Hull + Hull + + + BezierPS + BezierPS + BezierPS + BezierPS + BezierPS + BezierPS + Pixel + BEZIER_HS_PARTITION=\"integer\" + Pixel + BEZIER_HS_PARTITION=\"integer\" + Pixel + BEZIER_HS_PARTITION=\"integer\" + Pixel + BEZIER_HS_PARTITION=\"integer\" + Pixel + BEZIER_HS_PARTITION=\"integer\" + Pixel + BEZIER_HS_PARTITION=\"integer\" + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + + + Vertex + Vertex + Vertex + Vertex + Vertex + Vertex + + + + + + + + + + + + + Document + + + Vertex + Vertex + Vertex + Vertex + Vertex + Vertex + BezierVS + BEZIER_HS_PARTITION=\"integer\" + BezierVS + BEZIER_HS_PARTITION=\"integer\" + BezierVS + BezierVS + BezierVS + BezierVS + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + + + SolidColorPS + Pixel + SolidColorPS + Pixel + SolidColorPS + Pixel + SolidColorPS + Pixel + SolidColorPS + Pixel + SolidColorPS + Pixel + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + BEZIER_HS_PARTITION=\"integer\" + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + 5.0 + + + + + + + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.vcxproj.filters b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..1431857ade41f5f6b9c88dc4bf39d83315103109 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier.vcxproj.filters @@ -0,0 +1,116 @@ + + + + + f1c1fb22-f67b-460c-8554-7d56f4062073 + + + 5bbc21d4-9215-4b1a-849c-2cf66cc1e65a + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {3830e378-670f-487e-a433-7c9d7bcb45e6} + + + {20648530-18a4-417b-a575-0da00dad4566} + + + + + + + Common + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + ATG Tool Kit + + + + + + + + Common + + + ATG Tool Kit + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + Assets + + + Assets + + + Assets + + + Shaders + + + + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + Shaders + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..c65dd469816d123a3c081c0d677310dac0f4f809 Binary files /dev/null and b/Samples/IntroGraphics/SimpleBezierUWP/SimpleBezier_TemporaryKey.pfx differ diff --git a/Samples/Graphics/SimpleTriangleUWP12/StepTimer.h b/Samples/IntroGraphics/SimpleBezierUWP/StepTimer.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/StepTimer.h rename to Samples/IntroGraphics/SimpleBezierUWP/StepTimer.h diff --git a/Samples/Graphics/SimpleTriangleUWP12/pch.cpp b/Samples/IntroGraphics/SimpleBezierUWP/pch.cpp similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/pch.cpp rename to Samples/IntroGraphics/SimpleBezierUWP/pch.cpp diff --git a/Samples/IntroGraphics/SimpleBezierUWP/pch.h b/Samples/IntroGraphics/SimpleBezierUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..d1a7aa224fc5387854f2353372bd99dda281e549 --- /dev/null +++ b/Samples/IntroGraphics/SimpleBezierUWP/pch.h @@ -0,0 +1,65 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Assets/Logo.png b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/Logo.png differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/SmallLogo.png differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/SplashScreen.png differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/StoreLogo.png differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/Assets/WideLogo.png differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/DeviceResources.cpp b/Samples/IntroGraphics/SimpleInstancingUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/DeviceResources.h b/Samples/IntroGraphics/SimpleInstancingUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Main.cpp b/Samples/IntroGraphics/SimpleInstancingUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4ed166e73a0e67c29a262cf44ea5a10a7b3c89f8 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleInstancing.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Package.appxmanifest b/Samples/IntroGraphics/SimpleInstancingUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..4e08b08e15335defab72b67c4bbcbeda585deb9d --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + SimpleInstancing + Xbox Advanced Technology Group + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/PixelShader.hlsl b/Samples/IntroGraphics/SimpleInstancingUWP/PixelShader.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..a1639ea9e820e3e7515b7899254d3dbe88e89b41 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/PixelShader.hlsl @@ -0,0 +1,2 @@ +// PixelShader.hlsl file to provide an MSBuild target for the SimpleInstancing pixel-shader entry point +#include "SimpleInstancing.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Readme.docx b/Samples/IntroGraphics/SimpleInstancingUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..bd2f9a55805a759d4caadcd8bae21f6b99751662 Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/Readme.docx differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/Shared.h b/Samples/IntroGraphics/SimpleInstancingUWP/Shared.h new file mode 100644 index 0000000000000000000000000000000000000000..af68383af8c11886d5529e7736f4603fd7a37927 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/Shared.h @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// Shared.h +// +// Shared declarations between shaders (HLSL) and C++ source. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +static const unsigned int c_pointLightCount = 25; diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.cpp b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.cpp new file mode 100644 index 0000000000000000000000000000000000000000..24e403ab6857dca5468d783e6544a9945ce40933 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.cpp @@ -0,0 +1,705 @@ +//-------------------------------------------------------------------------------------- +// SimpleInstancing.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleInstancing.h" + +#include "ATGColors.h" +#include "ControllerFont.h" +#include "ReadData.h" + +using namespace DirectX; +using namespace DirectX::PackedVector; + +using Microsoft::WRL::ComPtr; + +namespace +{ + //-------------------------------------------------------------------------------------- + // Constants + //-------------------------------------------------------------------------------------- + const uint32_t c_maxInstances = 20000; + const uint32_t c_startInstanceCount = 5000; + const uint32_t c_minInstanceCount = 1000; + const float c_boxBounds = 60.0f; + const size_t c_cubeIndexCount = 36; + const float c_velocityMultiplier = 500.0f; + const float c_rotationGain = 0.004f; + + //-------------------------------------------------------------------------------------- + // Cube vertex definition + //-------------------------------------------------------------------------------------- + struct Vertex + { + XMFLOAT3 pos; + XMFLOAT3 norm; + }; +} + +Sample::Sample() : + m_gamepadPresent(false), + m_usedInstanceCount(c_startInstanceCount), + m_lights{}, + m_pitch(0.0f), + m_yaw(0.0f) +{ + XMStoreFloat4x4(&m_proj, XMMatrixIdentity()); + + // Use gamma-correct rendering. Requires Feature Level 10.0 or greater. + m_deviceResources = std::make_unique(DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, + DXGI_FORMAT_D32_FLOAT, 2, D3D_FEATURE_LEVEL_10_0); + m_deviceResources->RegisterDeviceNotify(this); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_mouse = std::make_unique(); + m_mouse->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const& timer) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + float elapsedTime = float(timer.GetElapsedSeconds()); + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + auto pad = m_gamePad->GetState(0); + m_gamepadPresent = pad.IsConnected(); + if (m_gamepadPresent) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + if (m_gamePadButtons.a == GamePad::ButtonStateTracker::ButtonState::PRESSED) + { + ResetSimulation(); + } + + if (m_gamePadButtons.rightShoulder == GamePad::ButtonStateTracker::ButtonState::PRESSED) + { + m_usedInstanceCount = std::min(c_maxInstances, m_usedInstanceCount + 1000); + } + else if (m_gamePadButtons.leftShoulder == GamePad::ButtonStateTracker::ButtonState::PRESSED) + { + m_usedInstanceCount = std::max(c_minInstanceCount, m_usedInstanceCount - 1000); + } + + if (pad.IsLeftStickPressed()) + { + m_yaw = m_pitch = 0.f; + } + else + { + m_yaw += pad.thumbSticks.leftX * 0.1f; + m_pitch += pad.thumbSticks.leftY * 0.1f; + } + } + else + { + m_gamePadButtons.Reset(); + + if (kb.A || kb.D) + { + m_yaw += (kb.D ? 0.1f : -0.1f) ; + } + + if (kb.W || kb.S) + { + m_pitch += (kb.W ? 0.1f : -0.1f); + } + + if (kb.Home) + { + m_yaw = m_pitch = 0.f; + } + + // Basic mouse-look + auto mouse = m_mouse->GetState(); + if (mouse.positionMode == Mouse::MODE_RELATIVE) + { + if (!mouse.leftButton) + { + m_mouse->SetMode(Mouse::MODE_ABSOLUTE); + } + else + { + m_pitch -= mouse.y * c_rotationGain; + m_yaw += mouse.x * c_rotationGain; + } + } + else if (mouse.leftButton) + { + m_mouse->SetMode(Mouse::MODE_RELATIVE); + } + } + + if (kb.Escape) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + if (m_keyboardButtons.IsKeyPressed(Keyboard::Q)) + { + m_usedInstanceCount = std::max(c_minInstanceCount, m_usedInstanceCount - 1000); + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::E)) + { + m_usedInstanceCount = std::min(c_maxInstances, m_usedInstanceCount + 1000); + } + + if (m_keyboardButtons.IsKeyPressed(Keyboard::Space)) + { + ResetSimulation(); + } + + // Limit to avoid looking directly up or down + float limit = XM_PI / 2.0f - 0.01f; + m_pitch = std::max(-limit, m_pitch); + m_pitch = std::min(+limit, m_pitch); + + if (m_yaw > XM_PI) + { + m_yaw -= XM_PI * 2.f; + } + else if (m_yaw < -XM_PI) + { + m_yaw += XM_PI * 2.f; + } + + XMVECTOR lookAt = XMVectorSet( + sinf(m_yaw), + m_pitch, + cosf(m_yaw), + 0); + + // Update transforms and constant buffer. + XMMATRIX camera = XMMatrixLookAtLH(g_XMZero, lookAt, g_XMIdentityR1); + XMMATRIX proj = XMLoadFloat4x4(&m_proj); + XMMATRIX clip = XMMatrixTranspose(XMMatrixMultiply(camera, proj)); + ReplaceBufferContents(m_vertexConstants.Get(), sizeof(XMMATRIX), &clip); + + // Overwrite our current instance vertex buffer with new data. + ReplaceBufferContents(m_instanceData.Get(), sizeof(Instance) * m_usedInstanceCount, m_CPUInstanceData.get()); + + // Update instance data for the next frame. + for (size_t i = 1; i < m_usedInstanceCount; ++i) + { + // Update positions... + float velocityMultiplier = i <= c_pointLightCount ? 5.0f * c_velocityMultiplier : c_velocityMultiplier; + XMVECTOR position = XMLoadFloat4(&m_CPUInstanceData[i].positionAndScale); + position += m_velocities[i] * elapsedTime * velocityMultiplier; + XMStoreFloat4(&m_CPUInstanceData[i].positionAndScale, position); + + float X = m_CPUInstanceData[i].positionAndScale.x; + float Y = m_CPUInstanceData[i].positionAndScale.y; + float Z = m_CPUInstanceData[i].positionAndScale.z; + + bool bounce = false; + + // If an instance pops out of bounds in any dimension, reverse velocity in that dimension... + if (X < -c_boxBounds || X > c_boxBounds) + { + m_velocities[i] *= XMVectorSet(-1.0f, 1.0f, 1.0f, 1.0f); + bounce = true; + } + if (Y < -c_boxBounds || Y > c_boxBounds) + { + m_velocities[i] *= XMVectorSet(1.0f, -1.0f, 1.0f, 1.0f); + bounce = true; + } + if (Z < -c_boxBounds || Z > c_boxBounds) + { + m_velocities[i] *= XMVectorSet(1.0f, 1.0f, -1.0f, 1.0f); + bounce = true; + } + + // Apply bounce here. + if (bounce) + { + position = XMLoadFloat4(&m_CPUInstanceData[i].positionAndScale); + position += m_velocities[i] * elapsedTime * c_velocityMultiplier; + XMStoreFloat4(&m_CPUInstanceData[i].positionAndScale, position); + } + + // Set up constant buffer with point light info. + if (i <= c_pointLightCount) + { + m_lights.pointPositions[i - 1] = m_CPUInstanceData[i].positionAndScale; + } + + XMVECTOR q = XMLoadFloat4(&m_CPUInstanceData[i].quaternion); + q = XMQuaternionNormalizeEst(XMQuaternionMultiply(m_rotationQuaternions[i], q)); + XMStoreFloat4(&m_CPUInstanceData[i].quaternion, q); + } + + // Update the D3D11 constant buffer with the new lighting constant data. + ReplaceBufferContents(m_pixelConstants.Get(), sizeof(Lights), &m_lights); + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + // Use the default blend + context->OMSetBlendState(nullptr, nullptr, D3D11_DEFAULT_SAMPLE_MASK); + + // Set input assembler state. + context->IASetInputLayout(m_inputLayout.Get()); + + // We're rendering a triangle list. + context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + + // Set up the vertex buffers. We have 3 streams: + // Stream 1 contains per-primitive vertices defining the cubes. + // Stream 2 contains the per-instance data for scale, position and orientation + // Stream 3 contains the per-instance data for color. + UINT Strides[] = { sizeof(Vertex), sizeof(Instance), sizeof(uint32_t) }; + UINT Offsets[] = { 0, 0, 0 }; + ID3D11Buffer* Buffers[] = { m_vertexBuffer.Get(), m_instanceData.Get(), m_boxColors.Get() }; + context->IASetVertexBuffers(0, _countof(Strides), Buffers, Strides, Offsets); + + // The per-instance data is referenced by index... + context->IASetIndexBuffer(m_indexBuffer.Get(), DXGI_FORMAT_R16_UINT, 0); + + // Apply the constants for the vertex and pixel shaders. + context->VSSetConstantBuffers(0, 1, m_vertexConstants.GetAddressOf()); + context->PSSetConstantBuffers(0, 1, m_pixelConstants.GetAddressOf()); + + // Set shaders. + context->VSSetShader(m_vertexShader.Get(), nullptr, 0); + context->PSSetShader(m_pixelShader.Get(), nullptr, 0); + + // Draw the entire scene... + context->DrawIndexedInstanced(c_cubeIndexCount, m_usedInstanceCount, 0, 0, 0); + + // Draw UI + auto size = m_deviceResources->GetOutputSize(); + auto safe = SimpleMath::Viewport::ComputeTitleSafeArea(size.right, size.bottom); + + m_batch->Begin(); + + wchar_t str[32] = {}; + swprintf_s(str, L"Instancing count: %u", m_usedInstanceCount); + m_smallFont->DrawString(m_batch.get(), str, XMFLOAT2(float(safe.left), float(safe.top)), ATG::Colors::White); + + const wchar_t* legend = m_gamepadPresent + ? L"[LThumb] Rotate [A] Reset [LB]/[RB] Change instance count [View] Exit" + : L"WASD/Left Mouse Button: Rotate Q/E: Change instance count Home: Center Space: Reset Esc: Exit"; + + DX::DrawControllerString(m_batch.get(), + m_smallFont.get(), m_ctrlFont.get(), + legend, + XMFLOAT2(float(safe.left), + float(safe.bottom) - m_smallFont->GetLineSpacing()), + ATG::Colors::LightGrey); + + m_batch->End(); + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + auto depthStencil = m_deviceResources->GetDepthStencilView(); + + // Use linear clear color for gamma-correct rendering + context->ClearRenderTargetView(renderTarget, ATG::ColorsLinear::Background); + context->ClearDepthStencilView(depthStencil, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); + + context->OMSetRenderTargets(1, &renderTarget, depthStencil); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto device = m_deviceResources->GetD3DDevice(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + m_batch = std::make_unique(context); + + m_smallFont = std::make_unique(device, L"SegoeUI_18.spritefont"); + m_ctrlFont = std::make_unique(device, L"XboxOneControllerLegendSmall.spritefont"); + + // Create input layout (must match declaration of Vertex). + static const D3D11_INPUT_ELEMENT_DESC inputElementDesc[] = + { + // SemanticName SemanticIndex Format InputSlot AlignedByteOffset InputSlotClass InstancedDataStepRate + { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, // Vertex local position + { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }, // Vertex normal + { "I_ROTATION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D11_INPUT_PER_INSTANCE_DATA, 1 }, // Instance rotation quaternion + { "I_POSSCALE", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_INSTANCE_DATA, 1 }, // Instance position and scale (scale in "w") + { "I_COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 2, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_INSTANCE_DATA, 1 }, // Instance color + }; + + // Load and create shaders. + { + auto shaderBytecode = DX::ReadData(L"VertexShader.cso"); + + DX::ThrowIfFailed( + device->CreateVertexShader(shaderBytecode.data(), shaderBytecode.size(), nullptr, m_vertexShader.ReleaseAndGetAddressOf()) + ); + + DX::ThrowIfFailed( + device->CreateInputLayout(inputElementDesc, _countof(inputElementDesc), shaderBytecode.data(), shaderBytecode.size(), m_inputLayout.ReleaseAndGetAddressOf()) + ); + } + + { + auto shaderBytecode = DX::ReadData(L"PixelShader.cso"); + + DX::ThrowIfFailed( + device->CreatePixelShader(shaderBytecode.data(), shaderBytecode.size(), nullptr, m_pixelShader.ReleaseAndGetAddressOf()) + ); + } + + // Create and initialize the vertex buffer defining a cube. + { + static const Vertex vertices[] = + { + { XMFLOAT3(-1, -1, -1), XMFLOAT3(0, 0, -1) }, + { XMFLOAT3( 1, -1, -1), XMFLOAT3(0, 0, -1) }, + { XMFLOAT3( 1, 1, -1), XMFLOAT3(0, 0, -1) }, + { XMFLOAT3(-1, 1, -1), XMFLOAT3(0, 0, -1) }, // Z negative face + + { XMFLOAT3( 1, -1, 1), XMFLOAT3(0, 0, 1) }, + { XMFLOAT3(-1, -1, 1), XMFLOAT3(0, 0, 1) }, + { XMFLOAT3(-1, 1, 1), XMFLOAT3(0, 0, 1) }, + { XMFLOAT3( 1, 1, 1), XMFLOAT3(0, 0, 1) }, // Z Positive face + + { XMFLOAT3(-1, -1, -1), XMFLOAT3(-1, 0, 0) }, + { XMFLOAT3(-1, 1, -1), XMFLOAT3(-1, 0, 0) }, + { XMFLOAT3(-1, 1, 1), XMFLOAT3(-1, 0, 0) }, + { XMFLOAT3(-1, -1, 1), XMFLOAT3(-1, 0, 0) }, // X negative face + + { XMFLOAT3( 1, 1, -1), XMFLOAT3( 1, 0, 0) }, + { XMFLOAT3( 1, -1, -1), XMFLOAT3( 1, 0, 0) }, + { XMFLOAT3( 1, -1, 1), XMFLOAT3( 1, 0, 0) }, + { XMFLOAT3( 1, 1, 1), XMFLOAT3( 1, 0, 0) }, // X Positive face + + { XMFLOAT3(-1, -1, 1), XMFLOAT3(0, -1, 0) }, + { XMFLOAT3( 1, -1, 1), XMFLOAT3(0, -1, 0) }, + { XMFLOAT3( 1, -1, -1), XMFLOAT3(0, -1, 0) }, + { XMFLOAT3(-1, -1, -1), XMFLOAT3(0, -1, 0) }, // Y negative face + + { XMFLOAT3( 1, 1, 1), XMFLOAT3(0, 1, 0) }, + { XMFLOAT3(-1, 1, 1), XMFLOAT3(0, 1, 0) }, + { XMFLOAT3(-1, 1, -1), XMFLOAT3(0, 1, 0) }, + { XMFLOAT3( 1, 1, -1), XMFLOAT3(0, 1, 0) }, // Y Positive face + }; + + D3D11_SUBRESOURCE_DATA initialData = { vertices, 0, 0 }; + + CD3D11_BUFFER_DESC bufferDesc(sizeof(vertices), D3D11_BIND_VERTEX_BUFFER, D3D11_USAGE_IMMUTABLE); + bufferDesc.StructureByteStride = sizeof(Vertex); + + DX::ThrowIfFailed( + device->CreateBuffer(&bufferDesc, &initialData, m_vertexBuffer.ReleaseAndGetAddressOf()) + ); + } + + // Create vertex buffers with per-instance data. + { + // We create two that we ping-pong between, so we can update one while the GPU is + // consuming the other. + CD3D11_BUFFER_DESC bufferDesc(sizeof(Instance) * c_maxInstances, D3D11_BIND_VERTEX_BUFFER, D3D11_USAGE_DYNAMIC, D3D11_CPU_ACCESS_WRITE); + bufferDesc.StructureByteStride = sizeof(Instance); + + DX::ThrowIfFailed( + device->CreateBuffer(&bufferDesc, nullptr, m_instanceData.ReleaseAndGetAddressOf()) + ); + } + + // Create a static vertex buffer with color data. + { + static const XMVECTORF32 c_bigColor = { 1.f, 1.f, 1.f, 0.f }; + uint32_t colors[c_maxInstances]; + colors[0] = XMCOLOR(c_bigColor); + for (uint32_t i = 1; i < c_maxInstances; ++i) + { + if (i <= c_pointLightCount) + { + m_lights.pointColors[i - 1] = XMFLOAT4(FloatRand(0.25f, 1.0f), FloatRand(0.25f, 1.0f), FloatRand(0.25f, 1.0f), 1.0f); + colors[i] = XMCOLOR(m_lights.pointColors[i - 1].x, m_lights.pointColors[i - 1].y, m_lights.pointColors[i - 1].z, 1.f); + } + else + { + colors[i] = XMCOLOR(FloatRand(0.25f, 1.0f), FloatRand(0.25f, 1.0f), FloatRand(0.25f, 1.0f), 0.f); + } + } + + D3D11_SUBRESOURCE_DATA initialData = { colors, 0, 0 }; + + CD3D11_BUFFER_DESC bufferDesc(sizeof(uint32_t) * c_maxInstances, D3D11_BIND_VERTEX_BUFFER, D3D11_USAGE_IMMUTABLE); + bufferDesc.StructureByteStride = sizeof(uint32_t); + + DX::ThrowIfFailed( + device->CreateBuffer(&bufferDesc, &initialData, m_boxColors.ReleaseAndGetAddressOf()) + ); + } + + // Create and initialize the index buffer for the cube geometry. + { + static const uint16_t indices[] = + { + 0, 2, 1, + 0, 3, 2, + 4, 6, 5, + 4, 7, 6, + 8, 10, 9, + 8, 11, 10, + 12, 14, 13, + 12, 15, 14, + 16, 18, 17, + 16, 19, 18, + 20, 22, 21, + 20, 23, 22, + }; + + D3D11_SUBRESOURCE_DATA initialData = { indices, 0, 0 }; + + CD3D11_BUFFER_DESC bufferDesc(sizeof(indices), D3D11_BIND_INDEX_BUFFER, D3D11_USAGE_IMMUTABLE); + bufferDesc.StructureByteStride = sizeof(uint16_t); + + DX::ThrowIfFailed( + device->CreateBuffer(&bufferDesc, &initialData, m_indexBuffer.ReleaseAndGetAddressOf()) + ); + } + + // Create the vertex shader constant buffer. + { + CD3D11_BUFFER_DESC bufferDesc(sizeof(XMMATRIX), D3D11_BIND_CONSTANT_BUFFER, D3D11_USAGE_DYNAMIC, D3D11_CPU_ACCESS_WRITE); + DX::ThrowIfFailed( + device->CreateBuffer(&bufferDesc, nullptr, m_vertexConstants.ReleaseAndGetAddressOf()) + ); + } + + // Create the pixel shader (lighting) constant buffer. + { + static_assert((sizeof(Lights) % 16) == 0, "Constant buffer must always be 16-byte aligned"); + + CD3D11_BUFFER_DESC bufferDesc(sizeof(Lights), D3D11_BIND_CONSTANT_BUFFER, D3D11_USAGE_DYNAMIC, D3D11_CPU_ACCESS_WRITE); + DX::ThrowIfFailed( + device->CreateBuffer(&bufferDesc, nullptr, m_pixelConstants.ReleaseAndGetAddressOf()) + ); + } + + m_CPUInstanceData.reset(new Instance[c_maxInstances]); + m_rotationQuaternions.reset(reinterpret_cast(_aligned_malloc(sizeof(XMVECTOR) * c_maxInstances, 16))); + m_velocities.reset(reinterpret_cast(_aligned_malloc(sizeof(XMVECTOR) * c_maxInstances, 16))); + + // Set up the position and scale for the container box. Scale is negative to turn the box inside-out + // (this effectively reverses the normals and backface culling). + // Scale the outside box to slightly larger than our scene boundary, so bouncing boxes never actually clip it. + m_CPUInstanceData[0].positionAndScale = XMFLOAT4(0.0f, 0.0f, 0.0f, -(c_boxBounds + 5)); + m_CPUInstanceData[0].quaternion = XMFLOAT4(0.0f, 0.0f, 0.0f, 1.0f); + + // Initialize the directional light. + XMStoreFloat4(&m_lights.directional, XMVector3Normalize(XMVectorSet(1.0f, 4.0f, -2.0f, 0))); + + // Initialize the positions/state of all the cubes in the scene. + ResetSimulation(); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + // Initialize the projection matrix. + auto size = m_deviceResources->GetOutputSize(); + + XMMATRIX proj = XMMatrixPerspectiveFovLH(XM_PIDIV4, float(size.right) / float(size.bottom), 0.1f, 500.0f); + + XMFLOAT4X4 orient = m_deviceResources->GetOrientationTransform3D(); + + XMStoreFloat4x4(&m_proj, proj * XMLoadFloat4x4(&orient)); + + m_batch->SetRotation(m_deviceResources->GetRotation()); +} + +void Sample::OnDeviceLost() +{ + m_batch.reset(); + m_smallFont.reset(); + m_ctrlFont.reset(); + m_inputLayout.Reset(); + m_vertexBuffer.Reset(); + m_indexBuffer.Reset(); + m_instanceData.Reset(); + m_boxColors.Reset(); + m_vertexConstants.Reset(); + m_pixelConstants.Reset(); + m_vertexShader.Reset(); + m_pixelShader.Reset(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion + +void Sample::ReplaceBufferContents(ID3D11Buffer* buffer, size_t bufferSize, const void* data) +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + D3D11_MAPPED_SUBRESOURCE mapped; + + DX::ThrowIfFailed( + context->Map(buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped) + ); + + memcpy(mapped.pData, data, bufferSize); + context->Unmap(buffer, 0); +} + +void Sample::ResetSimulation() +{ + // Reset positions to starting point, and orientations to identity. + // Note that instance 0 is the scene bounding box, and the position, orientation and scale are static (i.e. never update). + for (size_t i = 1; i < c_maxInstances; ++i) + { + m_CPUInstanceData[i].positionAndScale = XMFLOAT4(0.0f, 0.0f, c_boxBounds / 2.0f, FloatRand(0.1f, 0.4f)); + m_CPUInstanceData[i].quaternion = XMFLOAT4(0.0f, 0.0f, 0.0f, 1.0f); + + // For the first c_pointLightCount in the updated array, we scale up by a small factor so they stand out, and + // update the light constant data with their positions. + if (i <= c_pointLightCount) + { + m_CPUInstanceData[i].positionAndScale.w = 1.53f; + m_lights.pointPositions[i - 1] = m_CPUInstanceData[i].positionAndScale; + } + + // Apply a random spin to each instance. + m_rotationQuaternions[i] = XMQuaternionRotationAxis(XMVector3Normalize(XMVectorSet(FloatRand(), FloatRand(), FloatRand(), 0)), FloatRand(0.001f, 0.1f)); + + // ...and a random velocity. + m_velocities[i] = XMVectorSet(FloatRand(-0.01f, 0.01f), FloatRand(-0.01f, 0.01f), FloatRand(-0.01f, 0.01f), 0); + } +} + +inline float Sample::FloatRand(float lowerBound, float upperBound) +{ + if (lowerBound == upperBound) + return lowerBound; + + std::uniform_real_distribution dist(lowerBound, upperBound); + + return dist(m_randomEngine); +} diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.h b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.h new file mode 100644 index 0000000000000000000000000000000000000000..a8a88f98bd7a7c45a5d6bdaa52404463a7b40a86 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.h @@ -0,0 +1,123 @@ +//-------------------------------------------------------------------------------------- +// SimpleInstancing.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" +#include "Shared.h" + +#include + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + void ReplaceBufferContents(ID3D11Buffer* buffer, size_t bufferSize, const void* data); + void ResetSimulation(); + + float FloatRand(float lowerBound = -1.0f, float upperBound = 1.0f); + + // Device resources. + std::unique_ptr m_deviceResources; + + // Rendering loop timer. + DX::StepTimer m_timer; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + std::unique_ptr m_mouse; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; + bool m_gamepadPresent; + + // DirectXTK objects. + std::unique_ptr m_batch; + std::unique_ptr m_smallFont; + std::unique_ptr m_ctrlFont; + + //-------------------------------------------------------------------------------------- + // Sample Objects. + //-------------------------------------------------------------------------------------- + + // Instance vertex definition + struct Instance + { + DirectX::XMFLOAT4 quaternion; + DirectX::XMFLOAT4 positionAndScale; + }; + + // Light data structure (maps to constant buffer in pixel shader) + struct Lights + { + DirectX::XMFLOAT4 directional; + DirectX::XMFLOAT4 pointPositions[c_pointLightCount]; + DirectX::XMFLOAT4 pointColors[c_pointLightCount]; + }; + + Microsoft::WRL::ComPtr m_inputLayout; + Microsoft::WRL::ComPtr m_vertexBuffer; + Microsoft::WRL::ComPtr m_indexBuffer; + Microsoft::WRL::ComPtr m_instanceData; + Microsoft::WRL::ComPtr m_boxColors; + Microsoft::WRL::ComPtr m_vertexConstants; + Microsoft::WRL::ComPtr m_pixelConstants; + Microsoft::WRL::ComPtr m_vertexShader; + Microsoft::WRL::ComPtr m_pixelShader; + + struct aligned_deleter { void operator()(void* p) { _aligned_free(p); } }; + + std::unique_ptr m_CPUInstanceData; + std::unique_ptr m_rotationQuaternions; + std::unique_ptr m_velocities; + uint32_t m_usedInstanceCount; + + DirectX::XMFLOAT4X4 m_proj; + Lights m_lights; + float m_pitch; + float m_yaw; + + std::default_random_engine m_randomEngine; +}; \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.hlsli b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.hlsli new file mode 100644 index 0000000000000000000000000000000000000000..94e47d13b4e4200fefb5ed40fd30c580444e75b8 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.hlsli @@ -0,0 +1,119 @@ +//-------------------------------------------------------------------------------------- +// SimpleInstancing.hlsli +// +// Simple shaders demonstrating how to peform instanced drawing. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "Shared.h" + +//-------------------------------------------------------------------------------------- +// Name: InstancingConstants +// Desc: Constant buffer containing clip-space transform. +//-------------------------------------------------------------------------------------- +cbuffer InstancingConstants +{ + float4x4 Clip; // Clip transform +}; + +//-------------------------------------------------------------------------------------- +// Name: Lights +// Desc: Constant buffer containing lighting information. +//-------------------------------------------------------------------------------------- +cbuffer Lights +{ + float4 Directional; + float4 PointPositions[ c_pointLightCount ]; + float4 PointColors[ c_pointLightCount ]; +}; + +//-------------------------------------------------------------------------------------- +// Name: InstancedVertex +// Desc: Structure containing vertex definition for instanced drawing. +// The incoming vertices arrive from 3 streams - one of which contains +// per-primitive information, the other two per-instance. +//-------------------------------------------------------------------------------------- +struct InstancedVertex +{ + float3 Position : POSITION; // Vertex position (per primitive) + float3 Normal : NORMAL; // Vertex normal (per primitive) + float4 InstRotation : I_ROTATION; // Orientation quaternion (per instance) + float4 InstPosScale : I_POSSCALE; // Position and scale (per instance) + float4 InstColor : I_COLOR; // Color (per instance) +}; + +//-------------------------------------------------------------------------------------- +// Name: Interpolants +// Desc: Interpolated values passed to the pixel shader. +//-------------------------------------------------------------------------------------- +struct Interpolants +{ + float4 Position : SV_POSITION; + float3 Normal : TEXCOORD0; + float4 Color : TEXCOORD1; + float3 WorldPos : TEXCOORD2; +}; + +//-------------------------------------------------------------------------------------- +// Name: RotateVectorByQuaternion +// Desc: Rotate a vector using a quaternion. +//-------------------------------------------------------------------------------------- +float3 RotateVectorByQuaternion( float4 Q, float3 V ) +{ + return V + 2.0f * cross( Q.xyz, cross( Q.xyz, V ) + Q.w * V ); +} + +//-------------------------------------------------------------------------------------- +// Name: VSMain() +// Desc: Vertex Shader main entrypoint. +//-------------------------------------------------------------------------------------- +Interpolants VSMain( InstancedVertex In ) +{ + Interpolants Out = ( Interpolants ) 0; + // Scale. + float3 position = In.Position * In.InstPosScale.w; + + // Rotate vertex position and normal based on instance quaternion... + position = RotateVectorByQuaternion( In.InstRotation, position ); + float3 normal = RotateVectorByQuaternion( In.InstRotation, In.Normal ); + + // Move to world space. + position += In.InstPosScale.xyz; + + // ...and clip. + Out.Position = mul( float4( position, 1 ), Clip ); + + // World space transform + Out.WorldPos = position; + + // Finally, output normal and color + Out.Normal = normal; + Out.Color = In.InstColor; + + return Out; +} + +//-------------------------------------------------------------------------------------- +// Name: PSMain() +// Desc: Pixel Shader main entrypoint. +//-------------------------------------------------------------------------------------- +float4 PSMain( Interpolants In ) : SV_Target +{ + float4 colorOut = 0; + + // Directional component: + colorOut = saturate( dot( In.Normal, Directional.xyz ) ) * In.Color * 0.5; + + for( uint i = 0; i < c_pointLightCount; ++i ) + { + float3 pointDirection = PointPositions[ i ].xyz - In.WorldPos; + float d = length( pointDirection ); + float attenuation = max( 0, 1.0f - ( dot( pointDirection, pointDirection ) / 500 ) ); + pointDirection = normalize( pointDirection ); + colorOut += saturate( dot( In.Normal, pointDirection ) ) * In.Color * PointColors[ i ] * attenuation; + } + + return colorOut + ( ( sign( In.Color.a ) * In.Color ) ); +} diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.sln b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.sln new file mode 100644 index 0000000000000000000000000000000000000000..18e4d0ee4832bda1be82e05e4342db0e099855f7 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimpleInstancing", "SimpleInstancing.vcxproj", "{A715348B-0E0A-4739-B184-F829C1A6FD96}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|ARM.ActiveCfg = Debug|ARM + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|ARM.Build.0 = Debug|ARM + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|ARM.Deploy.0 = Debug|ARM + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|x64.ActiveCfg = Debug|x64 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|x64.Build.0 = Debug|x64 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|x64.Deploy.0 = Debug|x64 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|x86.ActiveCfg = Debug|Win32 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|x86.Build.0 = Debug|Win32 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Debug|x86.Deploy.0 = Debug|Win32 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|ARM.ActiveCfg = Release|ARM + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|ARM.Build.0 = Release|ARM + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|ARM.Deploy.0 = Release|ARM + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|x64.ActiveCfg = Release|x64 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|x64.Build.0 = Release|x64 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|x64.Deploy.0 = Release|x64 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|x86.ActiveCfg = Release|Win32 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|x86.Build.0 = Release|Win32 + {A715348B-0E0A-4739-B184-F829C1A6FD96}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.vcxproj b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..834be22210e909a811458c49d950dcf78ffac78f --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.vcxproj @@ -0,0 +1,321 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {a715348b-0e0a-4739-b184-f829c1a6fd96} + DirectXApp + SimpleInstancing + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SimpleInstancing_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + Designer + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + PSMain + Pixel + PSMain + Pixel + PSMain + Pixel + PSMain + Pixel + PSMain + Pixel + PSMain + Pixel + 4.0 + 4.0 + 4.0 + 4.0 + 4.0 + 4.0 + + + VSMain + Vertex + VSMain + Vertex + VSMain + Vertex + VSMain + Vertex + VSMain + Vertex + VSMain + Vertex + 4.0 + 4.0 + 4.0 + 4.0 + 4.0 + 4.0 + + + + + + + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.vcxproj.filters b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..e9491efe327d52f9c44fd62e9436b82d43eebb53 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing.vcxproj.filters @@ -0,0 +1,89 @@ + + + + + d849c647-8f89-4335-bff1-865567cf1b15 + + + 9b77ee52-153f-4b83-8e14-48648b2a09ee + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {daac6288-49b4-4239-9237-39ae7c22a5d8} + + + {0e3d889f-2057-447d-ab83-9dc0833936ff} + + + + + + + Common + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + ATG Tool Kit + + + Shaders + + + + + + + + Common + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + Assets + + + Assets + + + Shaders + + + + + + Shaders + + + Shaders + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..bd3a47bf1035a7e8cc958d8814b545a1c99386c3 Binary files /dev/null and b/Samples/IntroGraphics/SimpleInstancingUWP/SimpleInstancing_TemporaryKey.pfx differ diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/StepTimer.h b/Samples/IntroGraphics/SimpleInstancingUWP/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/VertexShader.hlsl b/Samples/IntroGraphics/SimpleInstancingUWP/VertexShader.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..b8a537c8e6ce7c824fbf314c9d48ac3c2741988a --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/VertexShader.hlsl @@ -0,0 +1,2 @@ +// VertexShader.hlsl file to provide an MSBuild target for the SimpleInstancing vertex-shader entry point +#include "SimpleInstancing.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/pch.cpp b/Samples/IntroGraphics/SimpleInstancingUWP/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/IntroGraphics/SimpleInstancingUWP/pch.h b/Samples/IntroGraphics/SimpleInstancingUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..dbcf0c212091b532a23849bc6764a0a7c8d9ca21 --- /dev/null +++ b/Samples/IntroGraphics/SimpleInstancingUWP/pch.h @@ -0,0 +1,69 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" +#include "SpriteBatch.h" +#include "SimpleMath.h" +#include "SpriteFont.h" + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Assets/Logo.png b/Samples/IntroGraphics/SimpleLightingUWP/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/Assets/Logo.png differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleLightingUWP/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/Assets/SmallLogo.png differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleLightingUWP/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/Assets/SplashScreen.png differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleLightingUWP/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/Assets/StoreLogo.png differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleLightingUWP/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/Assets/WideLogo.png differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/DeviceResources.cpp b/Samples/IntroGraphics/SimpleLightingUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/DeviceResources.h b/Samples/IntroGraphics/SimpleLightingUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/LambertPS.hlsl b/Samples/IntroGraphics/SimpleLightingUWP/LambertPS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..62b916fdec14d115b6161b60eebc80c8000bce1f --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/LambertPS.hlsl @@ -0,0 +1,2 @@ +// LambertPS.hlsl file to provide an MSBuild target for the LambertPS pixel-shader entry point +#include "SimpleLighting.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Main.cpp b/Samples/IntroGraphics/SimpleLightingUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3913cbca20c9f3a17f7bded1cbf77ed03a24a7de --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleLightingUWP.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Package.appxmanifest b/Samples/IntroGraphics/SimpleLightingUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..3cc13756ea54ef04810c0896e3ab559e0138b21f --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + SimpleLightingUWP + Xbox Advanced Technology Group + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/Readme.docx b/Samples/IntroGraphics/SimpleLightingUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..6f9c76181b06cc930ab53ae78686278fd744dd9d Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/Readme.docx differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLighting.hlsli b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLighting.hlsli new file mode 100644 index 0000000000000000000000000000000000000000..0f5a2630b4ac35efba3f149f3dac4254f6efea30 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLighting.hlsli @@ -0,0 +1,80 @@ +//-------------------------------------------------------------------------------------- +// SimpleLighting.hlsl +// +// Shader demonstrating Lambertian lighting from multiple sources +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + + +//-------------------------------------------------------------------------------------- +// Constant Buffer Variables +//-------------------------------------------------------------------------------------- +cbuffer ConstantBuffer : register( b0 ) +{ + float4x4 mWorld; + float4x4 mView; + float4x4 mProjection; + float4 lightDir[ 2 ]; + float4 lightColor[ 2 ]; + float4 outputColor; +} + + +//-------------------------------------------------------------------------------------- +struct VS_INPUT +{ + float4 Pos : POSITION; + float3 Normal : NORMAL; +}; + +struct PS_INPUT +{ + float4 Pos : SV_POSITION; + float3 Normal : TEXCOORD0; +}; + + +//-------------------------------------------------------------------------------------- +// Name: TriangleVS +// Desc: Vertex shader +//-------------------------------------------------------------------------------------- +PS_INPUT TriangleVS( VS_INPUT input ) +{ + PS_INPUT output = ( PS_INPUT )0; + output.Pos = mul( input.Pos, mWorld ); + output.Pos = mul( output.Pos, mView ); + output.Pos = mul( output.Pos, mProjection ); + output.Normal = mul( input.Normal, ( ( float3x3 ) mWorld ) ); + + return output; +} + + +//-------------------------------------------------------------------------------------- +// Name: TrianglePS +// Desc: Pixel shader applying Lambertian lighting from two lights +//-------------------------------------------------------------------------------------- +float4 LambertPS( PS_INPUT input ) : SV_Target +{ + float4 finalColor = 0; + + //do NdotL lighting for 2 lights + for( int i=0; i< 2; i++ ) + { + finalColor += saturate( dot( ( float3 ) lightDir[ i ], input.Normal ) * lightColor[ i ] ); + } + finalColor.a = 1; + return finalColor; +} + + +//-------------------------------------------------------------------------------------- +// Name: TriangleSolidColorPS +// Desc: Pixel shader applying solid color +//-------------------------------------------------------------------------------------- +float4 SolidColorPS( PS_INPUT input ) : SV_Target +{ + return outputColor; +} diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.cpp b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dccf784809ad51f81097cf4d3fb2a82ada9b8554 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.cpp @@ -0,0 +1,465 @@ +//-------------------------------------------------------------------------------------- +// SimpleLightingUWP.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "SimpleLightingUWP.h" +#include "ATGColors.h" +#include "ReadData.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ + struct Vertex + { + XMFLOAT3 pos; + XMFLOAT3 normal; + }; + + struct ConstantBuffer + { + XMMATRIX worldMatrix; + XMMATRIX viewMatrix; + XMMATRIX projectionMatrix; + XMVECTOR lightDir[2]; + XMVECTOR lightColor[2]; + XMVECTOR outputColor; + }; + + static_assert((sizeof(ConstantBuffer) % 16) == 0, "Constant buffer must always be 16-byte aligned"); +} +Sample::Sample() : + m_curRotationAngleRad(0.0f) +{ + m_deviceResources = std::make_unique(); + m_deviceResources->RegisterDeviceNotify(this); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const& timer) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + float elapsedTime = float(timer.GetElapsedSeconds()); + + // Update the rotation constant + m_curRotationAngleRad += elapsedTime / 3.f; + if (m_curRotationAngleRad >= XM_2PI) + { + m_curRotationAngleRad -= XM_2PI; + } + + // Rotate the cube around the origin + XMStoreFloat4x4(&m_worldMatrix, XMMatrixRotationY(m_curRotationAngleRad)); + + // Setup our lighting parameters + m_lightDirs[0] = XMFLOAT4(-0.577f, 0.577f, -0.577f, 1.0f); + m_lightDirs[1] = XMFLOAT4(0.0f, 0.0f, -1.0f, 1.0f); + + m_lightColors[0] = XMFLOAT4(0.5f, 0.5f, 0.5f, 1.0f); + m_lightColors[1] = XMFLOAT4(0.5f, 0.0f, 0.0f, 1.0f); + + // Rotate the second light around the origin + XMMATRIX rotate = XMMatrixRotationY(-2.0f * m_curRotationAngleRad); + XMVECTOR lightDir = XMLoadFloat4(&m_lightDirs[1]); + lightDir = XMVector3Transform(lightDir, rotate); + XMStoreFloat4(&m_lightDirs[1], lightDir); + + // Handle controller input for exit + auto pad = m_gamePad->GetState(0); + if (pad.IsConnected()) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + } + else + { + m_gamePadButtons.Reset(); + } + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + if (kb.Escape) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + // Set the vertex buffer + UINT stride = sizeof(Vertex); + UINT offset = 0; + context->IASetVertexBuffers(0, 1, m_vertexBuffer.GetAddressOf(), &stride, &offset); + + // Set the index buffer + context->IASetIndexBuffer(m_indexBuffer.Get(), DXGI_FORMAT_R16_UINT, 0); + + // Set the input layout + context->IASetInputLayout(m_inputLayout.Get()); + + // Set the primitive toplogy + context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + + // Set the per-frame constants + ConstantBuffer sceneParameters = {}; + + // Shaders compiled with default row-major matrices + sceneParameters.worldMatrix = XMMatrixTranspose(XMLoadFloat4x4(&m_worldMatrix)); + sceneParameters.viewMatrix = XMMatrixTranspose(XMLoadFloat4x4(&m_viewMatrix)); + sceneParameters.projectionMatrix = XMMatrixTranspose(XMLoadFloat4x4(&m_projectionMatrix)); + + sceneParameters.lightDir[0] = XMLoadFloat4(&m_lightDirs[0]); + sceneParameters.lightDir[1] = XMLoadFloat4(&m_lightDirs[1]); + sceneParameters.lightColor[0] = XMLoadFloat4(&m_lightColors[0]); + sceneParameters.lightColor[1] = XMLoadFloat4(&m_lightColors[1]); + sceneParameters.outputColor = XMLoadFloat4(&m_outputColor); + + { + D3D11_MAPPED_SUBRESOURCE mapped; + DX::ThrowIfFailed(context->Map(m_constantBuffer.Get(), 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped)); + memcpy(mapped.pData, &sceneParameters, sizeof(ConstantBuffer)); + context->Unmap(m_constantBuffer.Get(), 0); + } + + // Render the cube + context->VSSetShader(m_vertexShader.Get(), nullptr, 0); + + // Vertex shader needs view and projection matrices to perform vertex transform + context->VSSetConstantBuffers(0, 1, m_constantBuffer.GetAddressOf()); + + context->PSSetShader(m_pixelShader.Get(), nullptr, 0); + + // Pixel shader needs light-direction vectors to perform per-pixel lighting + context->PSSetConstantBuffers(0, 1, m_constantBuffer.GetAddressOf()); + context->DrawIndexed(36, 0, 0); + + // Render each light + for (int m = 0; m < 2; ++m) + { + XMMATRIX lightMatrix = XMMatrixTranslationFromVector(5.0f * sceneParameters.lightDir[m]); + XMMATRIX lightScaleMatrix = XMMatrixScaling(0.2f, 0.2f, 0.2f); + lightMatrix = lightScaleMatrix * lightMatrix; + + // Update the world variable to reflect the current light + sceneParameters.worldMatrix = XMMatrixTranspose(lightMatrix); + sceneParameters.outputColor = sceneParameters.lightColor[m]; + + { + D3D11_MAPPED_SUBRESOURCE mapped; + DX::ThrowIfFailed(context->Map(m_constantBuffer.Get(), 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped)); + memcpy(mapped.pData, &sceneParameters, sizeof(ConstantBuffer)); + context->Unmap(m_constantBuffer.Get(), 0); + } + + context->VSSetConstantBuffers(0, 1, m_constantBuffer.GetAddressOf()); + context->PSSetConstantBuffers(0, 1, m_constantBuffer.GetAddressOf()); + + context->PSSetShader(m_pixelShaderSolid.Get(), nullptr, 0); + context->DrawIndexed(36, 0, 0); + } + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + auto depthStencil = m_deviceResources->GetDepthStencilView(); + + // Use linear clear color for gamma-correct rendering + context->ClearRenderTargetView(renderTarget, ATG::ColorsLinear::Background); + + context->ClearDepthStencilView(depthStencil, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); + + context->OMSetRenderTargets(1, &renderTarget, depthStencil); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto device = m_deviceResources->GetD3DDevice(); + + // Load and create shaders + { + auto blob = DX::ReadData(L"TriangleVS.cso"); + + DX::ThrowIfFailed( + device->CreateVertexShader(blob.data(), blob.size(), + nullptr, m_vertexShader.ReleaseAndGetAddressOf())); + + // Create the input layout + const D3D11_INPUT_ELEMENT_DESC inputElementDesc[] = + { + { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + }; + + DX::ThrowIfFailed( + device->CreateInputLayout(inputElementDesc, _countof(inputElementDesc), + blob.data(), blob.size(), + m_inputLayout.ReleaseAndGetAddressOf())); + } + + { + auto blob = DX::ReadData(L"LambertPS.cso"); + + DX::ThrowIfFailed( + device->CreatePixelShader(blob.data(), blob.size(), + nullptr, m_pixelShader.ReleaseAndGetAddressOf())); + } + + { + auto blob = DX::ReadData(L"SolidColorPS.cso"); + + DX::ThrowIfFailed( + device->CreatePixelShader(blob.data(), blob.size(), + nullptr, m_pixelShaderSolid.ReleaseAndGetAddressOf())); + } + + // Create and initialize the vertex buffer + { + static const Vertex vertices[] = + { + { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f) }, + { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f) }, + + { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f) }, + { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f) }, + { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f) }, + { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f) }, + + { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f) }, + { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f) }, + { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f) }, + { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f) }, + + { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f) }, + { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f) }, + + { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f) }, + { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f) }, + { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f) }, + { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f) }, + + { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f) }, + { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f) }, + { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f) }, + { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f) }, + }; + + CD3D11_BUFFER_DESC bufferDesc(sizeof(Vertex) * _countof(vertices), D3D11_BIND_VERTEX_BUFFER); + bufferDesc.StructureByteStride = sizeof(Vertex); + + D3D11_SUBRESOURCE_DATA initData = { vertices, 0, 0 }; + DX::ThrowIfFailed(device->CreateBuffer(&bufferDesc, &initData, m_vertexBuffer.ReleaseAndGetAddressOf())); + } + + // Create and initialize the index buffer + { + static const uint16_t indices[] = + { + 3,1,0, + 2,1,3, + + 6,4,5, + 7,4,6, + + 11,9,8, + 10,9,11, + + 14,12,13, + 15,12,14, + + 19,17,16, + 18,17,19, + + 22,20,21, + 23,20,22 + }; + CD3D11_BUFFER_DESC bufferDesc(sizeof(uint16_t) * _countof(indices), D3D11_BIND_INDEX_BUFFER); + bufferDesc.StructureByteStride = sizeof(uint16_t); + + D3D11_SUBRESOURCE_DATA initData = { indices, 0, 0 }; + DX::ThrowIfFailed(device->CreateBuffer(&bufferDesc, &initData, m_indexBuffer.ReleaseAndGetAddressOf())); + } + + // Create the constant buffer + { + CD3D11_BUFFER_DESC bufferDesc(sizeof(ConstantBuffer), D3D11_BIND_CONSTANT_BUFFER, D3D11_USAGE_DYNAMIC, D3D11_CPU_ACCESS_WRITE); + DX::ThrowIfFailed(device->CreateBuffer(&bufferDesc, nullptr, m_constantBuffer.ReleaseAndGetAddressOf())); + } + + // Initialize the world matrix + XMStoreFloat4x4(&m_worldMatrix, XMMatrixIdentity()); + + // Initialize the view matrix + static const XMVECTORF32 eye = { 0.0f, 4.0f, -10.0f, 0.0f }; + static const XMVECTORF32 at = { 0.0f, 1.0f, 0.0f, 0.0f }; + static const XMVECTORF32 up = { 0.0f, 1.0f, 0.0f, 0.0 }; + XMStoreFloat4x4(&m_viewMatrix, XMMatrixLookAtLH(eye, at, up)); + + // Initialize the lighting parameters + m_lightDirs[0] = XMFLOAT4(-0.577f, 0.577f, -0.577f, 1.0f); + m_lightDirs[1] = XMFLOAT4(0.0f, 0.0f, -1.0f, 1.0f); + + m_lightColors[0] = XMFLOAT4(0.5f, 0.5f, 0.5f, 1.0f); + m_lightColors[1] = XMFLOAT4(0.5f, 0.0f, 0.0f, 1.0f); + + // Initialize the scene output color + m_outputColor = XMFLOAT4(0, 0, 0, 0); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + // Initialize the projection matrix + auto size = m_deviceResources->GetOutputSize(); + XMMATRIX projection = XMMatrixPerspectiveFovLH(XM_PIDIV4, float(size.right) / float(size.bottom), 0.01f, 100.0f); + + XMFLOAT4X4 orient = m_deviceResources->GetOrientationTransform3D(); + + XMStoreFloat4x4(&m_projectionMatrix, projection * XMLoadFloat4x4(&orient)); +} + +void Sample::OnDeviceLost() +{ + m_inputLayout.Reset(); + m_vertexBuffer.Reset(); + m_indexBuffer.Reset(); + m_constantBuffer.Reset(); + m_vertexShader.Reset(); + m_pixelShader.Reset(); + m_pixelShaderSolid.Reset(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.h b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.h new file mode 100644 index 0000000000000000000000000000000000000000..0c3007ffa69a9d182c0b5ec7b4e3bf57c99843a6 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.h @@ -0,0 +1,87 @@ +//-------------------------------------------------------------------------------------- +// SimpleLightingUWP.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" + + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + // Device resources. + std::unique_ptr m_deviceResources; + + // Rendering loop timer. + DX::StepTimer m_timer; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; + // Sample Objects + Microsoft::WRL::ComPtr m_inputLayout; + Microsoft::WRL::ComPtr m_vertexBuffer; + Microsoft::WRL::ComPtr m_indexBuffer; + Microsoft::WRL::ComPtr m_constantBuffer; + + Microsoft::WRL::ComPtr m_vertexShader; + Microsoft::WRL::ComPtr m_pixelShader; + Microsoft::WRL::ComPtr m_pixelShaderSolid; + + // Scene constants, updated per-frame + float m_curRotationAngleRad; + + // These computed values will be loaded into a ConstantBuffer + // during Render + DirectX::XMFLOAT4X4 m_worldMatrix; + DirectX::XMFLOAT4X4 m_viewMatrix; + DirectX::XMFLOAT4X4 m_projectionMatrix; + DirectX::XMFLOAT4 m_lightDirs[2]; + DirectX::XMFLOAT4 m_lightColors[2]; + DirectX::XMFLOAT4 m_outputColor; +}; \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.sln b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.sln new file mode 100644 index 0000000000000000000000000000000000000000..1a6192407321d8b0192db69ed2029d79136595ca --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimpleLightingUWP", "SimpleLightingUWP.vcxproj", "{A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|ARM.ActiveCfg = Debug|ARM + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|ARM.Build.0 = Debug|ARM + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|ARM.Deploy.0 = Debug|ARM + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|x64.ActiveCfg = Debug|x64 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|x64.Build.0 = Debug|x64 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|x64.Deploy.0 = Debug|x64 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|x86.ActiveCfg = Debug|Win32 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|x86.Build.0 = Debug|Win32 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Debug|x86.Deploy.0 = Debug|Win32 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|ARM.ActiveCfg = Release|ARM + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|ARM.Build.0 = Release|ARM + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|ARM.Deploy.0 = Release|ARM + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|x64.ActiveCfg = Release|x64 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|x64.Build.0 = Release|x64 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|x64.Deploy.0 = Release|x64 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|x86.ActiveCfg = Release|Win32 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|x86.Build.0 = Release|Win32 + {A66CACF8-EB0A-4D35-A39F-65CBB6C546B8}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.vcxproj b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..e3e8d479fc997bdfcd22fe2e6291a306ba549cd7 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.vcxproj @@ -0,0 +1,307 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {a66cacf8-eb0a-4d35-a39f-65cbb6c546b8} + DirectXApp + SimpleLightingUWP + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SimpleLightingUWP_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + Designer + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + + + + + Pixel + Pixel + Pixel + Pixel + Pixel + Pixel + LambertPS + LambertPS + LambertPS + LambertPS + LambertPS + LambertPS + + + Pixel + Pixel + Pixel + Pixel + Pixel + Pixel + SolidColorPS + SolidColorPS + SolidColorPS + SolidColorPS + SolidColorPS + SolidColorPS + + + Vertex + Vertex + Vertex + Vertex + Vertex + Vertex + TriangleVS + TriangleVS + TriangleVS + TriangleVS + TriangleVS + TriangleVS + + + + + + + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.vcxproj.filters b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..28f602c848249f113fec10349f34c66795aa9675 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP.vcxproj.filters @@ -0,0 +1,80 @@ + + + + + 10d7c58e-7118-43d8-87df-699ecfe46ff3 + + + efb4a337-55e1-4d03-88ec-7916d13c2348 + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {e27b9846-cbd3-49e5-97c6-254605218852} + + + {585fe56b-1b7e-4a89-a58d-f4cacc87fdb4} + + + + + + + Common + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + + + + + + Common + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + + Shaders + + + + + Shaders + + + Shaders + + + Shaders + + + \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..9aaf2d17d056c674a47a80634232a276aaa4fa90 Binary files /dev/null and b/Samples/IntroGraphics/SimpleLightingUWP/SimpleLightingUWP_TemporaryKey.pfx differ diff --git a/Samples/IntroGraphics/SimpleLightingUWP/SolidColorPS.hlsl b/Samples/IntroGraphics/SimpleLightingUWP/SolidColorPS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..9bfe2b51036d01b7ba65abd0042ecd226d3ebb2f --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/SolidColorPS.hlsl @@ -0,0 +1,2 @@ +// SolidColorPS.hlsl file to provide an MSBuild target for the SolidColorPS pixel-shader entry point +#include "SimpleLighting.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/StepTimer.h b/Samples/IntroGraphics/SimpleLightingUWP/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/IntroGraphics/SimpleLightingUWP/TriangleVS.hlsl b/Samples/IntroGraphics/SimpleLightingUWP/TriangleVS.hlsl new file mode 100644 index 0000000000000000000000000000000000000000..1d13961b278ca338cbcd70386d614e2f2c11866e --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/TriangleVS.hlsl @@ -0,0 +1,2 @@ +// TriangleVS.hlsl file to provide an MSBuild target for the TriangleVS vertex-shader entry point +#include "SimpleLighting.hlsli" \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleLightingUWP/pch.cpp b/Samples/IntroGraphics/SimpleLightingUWP/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/IntroGraphics/SimpleLightingUWP/pch.h b/Samples/IntroGraphics/SimpleLightingUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..d1a7aa224fc5387854f2353372bd99dda281e549 --- /dev/null +++ b/Samples/IntroGraphics/SimpleLightingUWP/pch.h @@ -0,0 +1,65 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleTextureUWP/Assets/Logo.png b/Samples/IntroGraphics/SimpleTextureUWP/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP/Assets/Logo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleTextureUWP/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP/Assets/SmallLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleTextureUWP/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP/Assets/SplashScreen.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleTextureUWP/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP/Assets/StoreLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleTextureUWP/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP/Assets/WideLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP/DeviceResources.cpp b/Samples/IntroGraphics/SimpleTextureUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTextureUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleTextureUWP/DeviceResources.h b/Samples/IntroGraphics/SimpleTextureUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTextureUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/Graphics/SimpleTextureUWP/Main.cpp b/Samples/IntroGraphics/SimpleTextureUWP/Main.cpp similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Main.cpp rename to Samples/IntroGraphics/SimpleTextureUWP/Main.cpp diff --git a/Samples/Graphics/SimpleTextureUWP/Package.appxmanifest b/Samples/IntroGraphics/SimpleTextureUWP/Package.appxmanifest similarity index 90% rename from Samples/Graphics/SimpleTextureUWP/Package.appxmanifest rename to Samples/IntroGraphics/SimpleTextureUWP/Package.appxmanifest index fa435f8efc125d0f1e071c2ec4b663075b461ff4..1f755ea62cc4921a15d4bce3f239434fd85d8171 100644 --- a/Samples/Graphics/SimpleTextureUWP/Package.appxmanifest +++ b/Samples/IntroGraphics/SimpleTextureUWP/Package.appxmanifest @@ -8,14 +8,14 @@ SimpleTextureUWP - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Graphics/SimpleTextureUWP/PixelShader.hlsl b/Samples/IntroGraphics/SimpleTextureUWP/PixelShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/PixelShader.hlsl rename to Samples/IntroGraphics/SimpleTextureUWP/PixelShader.hlsl diff --git a/Samples/Graphics/SimpleTextureUWP/Readme.docx b/Samples/IntroGraphics/SimpleTextureUWP/Readme.docx similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/Readme.docx rename to Samples/IntroGraphics/SimpleTextureUWP/Readme.docx diff --git a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.cpp b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.cpp similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.cpp rename to Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.cpp diff --git a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.h b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.h rename to Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.h diff --git a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.sln b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.sln similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.sln rename to Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.sln diff --git a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj similarity index 98% rename from Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj rename to Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj index 2e13898f2c0fa562e8713a6b6aa83682d82122b1..92a15bee4b70caaf25c058c2d0d4e568d74736fa 100644 --- a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj +++ b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj @@ -1,4 +1,4 @@ - + @@ -276,4 +276,4 @@ - + \ No newline at end of file diff --git a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj.filters b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj.filters similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj.filters rename to Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP.vcxproj.filters diff --git a/Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP_TemporaryKey.pfx similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/SimpleTextureUWP_TemporaryKey.pfx rename to Samples/IntroGraphics/SimpleTextureUWP/SimpleTextureUWP_TemporaryKey.pfx diff --git a/Samples/IntroGraphics/SimpleTextureUWP/StepTimer.h b/Samples/IntroGraphics/SimpleTextureUWP/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/IntroGraphics/SimpleTextureUWP/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/Graphics/SimpleTextureUWP/VertexShader.hlsl b/Samples/IntroGraphics/SimpleTextureUWP/VertexShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/VertexShader.hlsl rename to Samples/IntroGraphics/SimpleTextureUWP/VertexShader.hlsl diff --git a/Samples/IntroGraphics/SimpleTextureUWP/pch.cpp b/Samples/IntroGraphics/SimpleTextureUWP/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTextureUWP/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/Graphics/SimpleTextureUWP/pch.h b/Samples/IntroGraphics/SimpleTextureUWP/pch.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP/pch.h rename to Samples/IntroGraphics/SimpleTextureUWP/pch.h diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/Assets/Logo.png b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/Logo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/SmallLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/SplashScreen.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/StoreLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTextureUWP12/Assets/WideLogo.png differ diff --git a/Samples/Graphics/SimpleTriangleUWP12/DeviceResources.cpp b/Samples/IntroGraphics/SimpleTextureUWP12/DeviceResources.cpp similarity index 85% rename from Samples/Graphics/SimpleTriangleUWP12/DeviceResources.cpp rename to Samples/IntroGraphics/SimpleTextureUWP12/DeviceResources.cpp index d8bbdbb335b0b91ec91e3a30fffbff74d6dbec40..c710962509ae1802e432fa4684554abd37fe160b 100644 --- a/Samples/Graphics/SimpleTriangleUWP12/DeviceResources.cpp +++ b/Samples/IntroGraphics/SimpleTextureUWP12/DeviceResources.cpp @@ -132,6 +132,27 @@ void DX::DeviceResources::CreateDeviceResources() IID_PPV_ARGS(m_d3dDevice.ReleaseAndGetAddressOf()) )); +#ifndef NDEBUG + // Configure debug device (if active). + ComPtr d3dInfoQueue; + if (SUCCEEDED(m_d3dDevice.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D12_MESSAGE_ID hide[] = + { + D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE, + D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE + }; + D3D12_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } +#endif + // Determine maximum supported feature level for this device static const D3D_FEATURE_LEVEL s_featureLevels[] = { @@ -168,15 +189,19 @@ void DX::DeviceResources::CreateDeviceResources() rtvDescriptorHeapDesc.NumDescriptors = m_backBufferCount; rtvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; - D3D12_DESCRIPTOR_HEAP_DESC dsvDescriptorHeapDesc = {}; - dsvDescriptorHeapDesc.NumDescriptors = 1; - dsvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; - DX::ThrowIfFailed(m_d3dDevice->CreateDescriptorHeap(&rtvDescriptorHeapDesc, IID_PPV_ARGS(m_rtvDescriptorHeap.ReleaseAndGetAddressOf()))); - DX::ThrowIfFailed(m_d3dDevice->CreateDescriptorHeap(&dsvDescriptorHeapDesc, IID_PPV_ARGS(m_dsvDescriptorHeap.ReleaseAndGetAddressOf()))); m_rtvDescriptorSize = m_d3dDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + D3D12_DESCRIPTOR_HEAP_DESC dsvDescriptorHeapDesc = {}; + dsvDescriptorHeapDesc.NumDescriptors = 1; + dsvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; + + DX::ThrowIfFailed(m_d3dDevice->CreateDescriptorHeap(&dsvDescriptorHeapDesc, IID_PPV_ARGS(m_dsvDescriptorHeap.ReleaseAndGetAddressOf()))); + } + // Create a command allocator for each back buffer that will be rendered to. for (UINT n = 0; n < m_backBufferCount; n++) { @@ -306,7 +331,7 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() { DX::ThrowIfFailed(m_swapChain->GetBuffer(n, IID_PPV_ARGS(m_renderTargets[n].GetAddressOf()))); - WCHAR name[25] = {}; + wchar_t name[25] = {}; swprintf_s(name, L"Render target %u", n); m_renderTargets[n]->SetName(name); @@ -321,40 +346,43 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() // Reset the index to the current back buffer. m_backBufferIndex = m_swapChain->GetCurrentBackBufferIndex(); - // Allocate a 2-D surface as the depth/stencil buffer and create a depth/stencil view - // on this surface. - CD3DX12_HEAP_PROPERTIES depthHeapProperties(D3D12_HEAP_TYPE_DEFAULT); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Allocate a 2-D surface as the depth/stencil buffer and create a depth/stencil view + // on this surface. + CD3DX12_HEAP_PROPERTIES depthHeapProperties(D3D12_HEAP_TYPE_DEFAULT); - D3D12_RESOURCE_DESC depthStencilDesc = CD3DX12_RESOURCE_DESC::Tex2D( - m_depthBufferFormat, - backBufferWidth, - backBufferHeight, - 1, // This depth stencil view has only one texture. - 1 // Use a single mipmap level. - ); - depthStencilDesc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL; - - D3D12_CLEAR_VALUE depthOptimizedClearValue = {}; - depthOptimizedClearValue.Format = m_depthBufferFormat; - depthOptimizedClearValue.DepthStencil.Depth = 1.0f; - depthOptimizedClearValue.DepthStencil.Stencil = 0; - - DX::ThrowIfFailed(m_d3dDevice->CreateCommittedResource( - &depthHeapProperties, - D3D12_HEAP_FLAG_NONE, - &depthStencilDesc, - D3D12_RESOURCE_STATE_DEPTH_WRITE, - &depthOptimizedClearValue, - IID_PPV_ARGS(m_depthStencil.ReleaseAndGetAddressOf()) - )); + D3D12_RESOURCE_DESC depthStencilDesc = CD3DX12_RESOURCE_DESC::Tex2D( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1 // Use a single mipmap level. + ); + depthStencilDesc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL; + + D3D12_CLEAR_VALUE depthOptimizedClearValue = {}; + depthOptimizedClearValue.Format = m_depthBufferFormat; + depthOptimizedClearValue.DepthStencil.Depth = 1.0f; + depthOptimizedClearValue.DepthStencil.Stencil = 0; + + DX::ThrowIfFailed(m_d3dDevice->CreateCommittedResource( + &depthHeapProperties, + D3D12_HEAP_FLAG_NONE, + &depthStencilDesc, + D3D12_RESOURCE_STATE_DEPTH_WRITE, + &depthOptimizedClearValue, + IID_PPV_ARGS(m_depthStencil.ReleaseAndGetAddressOf()) + )); - m_depthStencil->SetName(L"Depth stencil"); + m_depthStencil->SetName(L"Depth stencil"); - D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc = {}; - dsvDesc.Format = m_depthBufferFormat; - dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; + D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc = {}; + dsvDesc.Format = m_depthBufferFormat; + dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; - m_d3dDevice->CreateDepthStencilView(m_depthStencil.Get(), &dsvDesc, m_dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + m_d3dDevice->CreateDepthStencilView(m_depthStencil.Get(), &dsvDesc, m_dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + } // Set the 3D rendering viewport and scissor rectangle to target the entire window. m_screenViewport.TopLeftX = m_screenViewport.TopLeftY = 0.f; @@ -596,7 +624,7 @@ void DX::DeviceResources::GetAdapter(IDXGIAdapter1** ppAdapter) if (SUCCEEDED(D3D12CreateDevice(adapter.Get(), m_d3dMinFeatureLevel, _uuidof(ID3D12Device), nullptr))) { #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/Graphics/SimpleTextureUWP12/DeviceResources.h b/Samples/IntroGraphics/SimpleTextureUWP12/DeviceResources.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/DeviceResources.h rename to Samples/IntroGraphics/SimpleTextureUWP12/DeviceResources.h diff --git a/Samples/Graphics/SimpleTextureUWP12/Main.cpp b/Samples/IntroGraphics/SimpleTextureUWP12/Main.cpp similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Main.cpp rename to Samples/IntroGraphics/SimpleTextureUWP12/Main.cpp diff --git a/Samples/Graphics/SimpleTextureUWP12/Package.appxmanifest b/Samples/IntroGraphics/SimpleTextureUWP12/Package.appxmanifest similarity index 90% rename from Samples/Graphics/SimpleTextureUWP12/Package.appxmanifest rename to Samples/IntroGraphics/SimpleTextureUWP12/Package.appxmanifest index 9eed5b101973356d353e566048ee42fba86672cf..4722344f7d8153b2b475ac3c804eccf0052b91ac 100644 --- a/Samples/Graphics/SimpleTextureUWP12/Package.appxmanifest +++ b/Samples/IntroGraphics/SimpleTextureUWP12/Package.appxmanifest @@ -8,14 +8,14 @@ SimpleTextureUWP12 - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Graphics/SimpleTextureUWP12/PixelShader.hlsl b/Samples/IntroGraphics/SimpleTextureUWP12/PixelShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/PixelShader.hlsl rename to Samples/IntroGraphics/SimpleTextureUWP12/PixelShader.hlsl diff --git a/Samples/Graphics/SimpleTextureUWP12/Readme.docx b/Samples/IntroGraphics/SimpleTextureUWP12/Readme.docx similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/Readme.docx rename to Samples/IntroGraphics/SimpleTextureUWP12/Readme.docx diff --git a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.cpp b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.cpp similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.cpp rename to Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.cpp diff --git a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.h b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.h rename to Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.h diff --git a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.sln b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.sln similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.sln rename to Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.sln diff --git a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj similarity index 98% rename from Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj rename to Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj index 70782439efe358e62b45d6c44e8c3660cf8832fb..c4dcdd4493e13b555dfaafbef7408ff8708355d0 100644 --- a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj +++ b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj @@ -1,4 +1,4 @@ - + @@ -277,4 +277,4 @@ - + \ No newline at end of file diff --git a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj.filters b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj.filters similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj.filters rename to Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12.vcxproj.filters diff --git a/Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12_TemporaryKey.pfx similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/SimpleTextureUWP12_TemporaryKey.pfx rename to Samples/IntroGraphics/SimpleTextureUWP12/SimpleTextureUWP12_TemporaryKey.pfx diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/StepTimer.h b/Samples/IntroGraphics/SimpleTextureUWP12/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/IntroGraphics/SimpleTextureUWP12/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/Graphics/SimpleTextureUWP12/VertexShader.hlsl b/Samples/IntroGraphics/SimpleTextureUWP12/VertexShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/VertexShader.hlsl rename to Samples/IntroGraphics/SimpleTextureUWP12/VertexShader.hlsl diff --git a/Samples/Graphics/SimpleTextureUWP12/d3dx12.h b/Samples/IntroGraphics/SimpleTextureUWP12/d3dx12.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/d3dx12.h rename to Samples/IntroGraphics/SimpleTextureUWP12/d3dx12.h diff --git a/Samples/IntroGraphics/SimpleTextureUWP12/pch.cpp b/Samples/IntroGraphics/SimpleTextureUWP12/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTextureUWP12/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/Graphics/SimpleTextureUWP12/pch.h b/Samples/IntroGraphics/SimpleTextureUWP12/pch.h similarity index 100% rename from Samples/Graphics/SimpleTextureUWP12/pch.h rename to Samples/IntroGraphics/SimpleTextureUWP12/pch.h diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/Assets/Logo.png b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/Logo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/SmallLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/SplashScreen.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/StoreLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP/Assets/WideLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/DeviceResources.cpp b/Samples/IntroGraphics/SimpleTriangleUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTriangleUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/DeviceResources.h b/Samples/IntroGraphics/SimpleTriangleUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTriangleUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/Graphics/SimpleTriangleUWP/Main.cpp b/Samples/IntroGraphics/SimpleTriangleUWP/Main.cpp similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Main.cpp rename to Samples/IntroGraphics/SimpleTriangleUWP/Main.cpp diff --git a/Samples/Graphics/SimpleTriangleUWP/Package.appxmanifest b/Samples/IntroGraphics/SimpleTriangleUWP/Package.appxmanifest similarity index 90% rename from Samples/Graphics/SimpleTriangleUWP/Package.appxmanifest rename to Samples/IntroGraphics/SimpleTriangleUWP/Package.appxmanifest index a1d9dfe0b8ea973aea626477e05a82ae0d84877f..1fb6cc1f4b3332e3467f5d9a1cc499bdb15fe26e 100644 --- a/Samples/Graphics/SimpleTriangleUWP/Package.appxmanifest +++ b/Samples/IntroGraphics/SimpleTriangleUWP/Package.appxmanifest @@ -8,14 +8,14 @@ SimpleTriangleUWP - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Graphics/SimpleTriangleUWP/PixelShader.hlsl b/Samples/IntroGraphics/SimpleTriangleUWP/PixelShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/PixelShader.hlsl rename to Samples/IntroGraphics/SimpleTriangleUWP/PixelShader.hlsl diff --git a/Samples/Graphics/SimpleTriangleUWP/Readme.docx b/Samples/IntroGraphics/SimpleTriangleUWP/Readme.docx similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/Readme.docx rename to Samples/IntroGraphics/SimpleTriangleUWP/Readme.docx diff --git a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.cpp b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.cpp similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.cpp rename to Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.cpp diff --git a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.h b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.h rename to Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.h diff --git a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.sln b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.sln similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.sln rename to Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.sln diff --git a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj similarity index 98% rename from Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj rename to Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj index 0ca06fc60c231d15999495c772747b6f2cd3e435..c627a194bbbe5fb15ae707c6b5953445f3508c0a 100644 --- a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj +++ b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj @@ -1,4 +1,4 @@ - + @@ -275,4 +275,4 @@ - + \ No newline at end of file diff --git a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj.filters b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj.filters similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj.filters rename to Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP.vcxproj.filters diff --git a/Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP_TemporaryKey.pfx similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/SimpleTriangleUWP_TemporaryKey.pfx rename to Samples/IntroGraphics/SimpleTriangleUWP/SimpleTriangleUWP_TemporaryKey.pfx diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/StepTimer.h b/Samples/IntroGraphics/SimpleTriangleUWP/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/IntroGraphics/SimpleTriangleUWP/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/Graphics/SimpleTriangleUWP/VertexShader.hlsl b/Samples/IntroGraphics/SimpleTriangleUWP/VertexShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/VertexShader.hlsl rename to Samples/IntroGraphics/SimpleTriangleUWP/VertexShader.hlsl diff --git a/Samples/IntroGraphics/SimpleTriangleUWP/pch.cpp b/Samples/IntroGraphics/SimpleTriangleUWP/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTriangleUWP/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/Graphics/SimpleTriangleUWP/pch.h b/Samples/IntroGraphics/SimpleTriangleUWP/pch.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP/pch.h rename to Samples/IntroGraphics/SimpleTriangleUWP/pch.h diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/Logo.png b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/Logo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/SmallLogo.png b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/SmallLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/SplashScreen.png b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/SplashScreen.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/StoreLogo.png b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/StoreLogo.png differ diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/WideLogo.png b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/IntroGraphics/SimpleTriangleUWP12/Assets/WideLogo.png differ diff --git a/Samples/Graphics/SimpleTextureUWP12/DeviceResources.cpp b/Samples/IntroGraphics/SimpleTriangleUWP12/DeviceResources.cpp similarity index 85% rename from Samples/Graphics/SimpleTextureUWP12/DeviceResources.cpp rename to Samples/IntroGraphics/SimpleTriangleUWP12/DeviceResources.cpp index d8bbdbb335b0b91ec91e3a30fffbff74d6dbec40..c710962509ae1802e432fa4684554abd37fe160b 100644 --- a/Samples/Graphics/SimpleTextureUWP12/DeviceResources.cpp +++ b/Samples/IntroGraphics/SimpleTriangleUWP12/DeviceResources.cpp @@ -132,6 +132,27 @@ void DX::DeviceResources::CreateDeviceResources() IID_PPV_ARGS(m_d3dDevice.ReleaseAndGetAddressOf()) )); +#ifndef NDEBUG + // Configure debug device (if active). + ComPtr d3dInfoQueue; + if (SUCCEEDED(m_d3dDevice.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D12_MESSAGE_ID hide[] = + { + D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE, + D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE + }; + D3D12_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } +#endif + // Determine maximum supported feature level for this device static const D3D_FEATURE_LEVEL s_featureLevels[] = { @@ -168,15 +189,19 @@ void DX::DeviceResources::CreateDeviceResources() rtvDescriptorHeapDesc.NumDescriptors = m_backBufferCount; rtvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; - D3D12_DESCRIPTOR_HEAP_DESC dsvDescriptorHeapDesc = {}; - dsvDescriptorHeapDesc.NumDescriptors = 1; - dsvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; - DX::ThrowIfFailed(m_d3dDevice->CreateDescriptorHeap(&rtvDescriptorHeapDesc, IID_PPV_ARGS(m_rtvDescriptorHeap.ReleaseAndGetAddressOf()))); - DX::ThrowIfFailed(m_d3dDevice->CreateDescriptorHeap(&dsvDescriptorHeapDesc, IID_PPV_ARGS(m_dsvDescriptorHeap.ReleaseAndGetAddressOf()))); m_rtvDescriptorSize = m_d3dDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + D3D12_DESCRIPTOR_HEAP_DESC dsvDescriptorHeapDesc = {}; + dsvDescriptorHeapDesc.NumDescriptors = 1; + dsvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; + + DX::ThrowIfFailed(m_d3dDevice->CreateDescriptorHeap(&dsvDescriptorHeapDesc, IID_PPV_ARGS(m_dsvDescriptorHeap.ReleaseAndGetAddressOf()))); + } + // Create a command allocator for each back buffer that will be rendered to. for (UINT n = 0; n < m_backBufferCount; n++) { @@ -306,7 +331,7 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() { DX::ThrowIfFailed(m_swapChain->GetBuffer(n, IID_PPV_ARGS(m_renderTargets[n].GetAddressOf()))); - WCHAR name[25] = {}; + wchar_t name[25] = {}; swprintf_s(name, L"Render target %u", n); m_renderTargets[n]->SetName(name); @@ -321,40 +346,43 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() // Reset the index to the current back buffer. m_backBufferIndex = m_swapChain->GetCurrentBackBufferIndex(); - // Allocate a 2-D surface as the depth/stencil buffer and create a depth/stencil view - // on this surface. - CD3DX12_HEAP_PROPERTIES depthHeapProperties(D3D12_HEAP_TYPE_DEFAULT); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Allocate a 2-D surface as the depth/stencil buffer and create a depth/stencil view + // on this surface. + CD3DX12_HEAP_PROPERTIES depthHeapProperties(D3D12_HEAP_TYPE_DEFAULT); - D3D12_RESOURCE_DESC depthStencilDesc = CD3DX12_RESOURCE_DESC::Tex2D( - m_depthBufferFormat, - backBufferWidth, - backBufferHeight, - 1, // This depth stencil view has only one texture. - 1 // Use a single mipmap level. - ); - depthStencilDesc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL; - - D3D12_CLEAR_VALUE depthOptimizedClearValue = {}; - depthOptimizedClearValue.Format = m_depthBufferFormat; - depthOptimizedClearValue.DepthStencil.Depth = 1.0f; - depthOptimizedClearValue.DepthStencil.Stencil = 0; - - DX::ThrowIfFailed(m_d3dDevice->CreateCommittedResource( - &depthHeapProperties, - D3D12_HEAP_FLAG_NONE, - &depthStencilDesc, - D3D12_RESOURCE_STATE_DEPTH_WRITE, - &depthOptimizedClearValue, - IID_PPV_ARGS(m_depthStencil.ReleaseAndGetAddressOf()) - )); + D3D12_RESOURCE_DESC depthStencilDesc = CD3DX12_RESOURCE_DESC::Tex2D( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1 // Use a single mipmap level. + ); + depthStencilDesc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL; + + D3D12_CLEAR_VALUE depthOptimizedClearValue = {}; + depthOptimizedClearValue.Format = m_depthBufferFormat; + depthOptimizedClearValue.DepthStencil.Depth = 1.0f; + depthOptimizedClearValue.DepthStencil.Stencil = 0; + + DX::ThrowIfFailed(m_d3dDevice->CreateCommittedResource( + &depthHeapProperties, + D3D12_HEAP_FLAG_NONE, + &depthStencilDesc, + D3D12_RESOURCE_STATE_DEPTH_WRITE, + &depthOptimizedClearValue, + IID_PPV_ARGS(m_depthStencil.ReleaseAndGetAddressOf()) + )); - m_depthStencil->SetName(L"Depth stencil"); + m_depthStencil->SetName(L"Depth stencil"); - D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc = {}; - dsvDesc.Format = m_depthBufferFormat; - dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; + D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc = {}; + dsvDesc.Format = m_depthBufferFormat; + dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; - m_d3dDevice->CreateDepthStencilView(m_depthStencil.Get(), &dsvDesc, m_dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + m_d3dDevice->CreateDepthStencilView(m_depthStencil.Get(), &dsvDesc, m_dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + } // Set the 3D rendering viewport and scissor rectangle to target the entire window. m_screenViewport.TopLeftX = m_screenViewport.TopLeftY = 0.f; @@ -596,7 +624,7 @@ void DX::DeviceResources::GetAdapter(IDXGIAdapter1** ppAdapter) if (SUCCEEDED(D3D12CreateDevice(adapter.Get(), m_d3dMinFeatureLevel, _uuidof(ID3D12Device), nullptr))) { #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/Graphics/SimpleTriangleUWP12/DeviceResources.h b/Samples/IntroGraphics/SimpleTriangleUWP12/DeviceResources.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/DeviceResources.h rename to Samples/IntroGraphics/SimpleTriangleUWP12/DeviceResources.h diff --git a/Samples/Graphics/SimpleTriangleUWP12/Main.cpp b/Samples/IntroGraphics/SimpleTriangleUWP12/Main.cpp similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Main.cpp rename to Samples/IntroGraphics/SimpleTriangleUWP12/Main.cpp diff --git a/Samples/Graphics/SimpleTriangleUWP12/Package.appxmanifest b/Samples/IntroGraphics/SimpleTriangleUWP12/Package.appxmanifest similarity index 90% rename from Samples/Graphics/SimpleTriangleUWP12/Package.appxmanifest rename to Samples/IntroGraphics/SimpleTriangleUWP12/Package.appxmanifest index f89d32949b3a2a957e346f90cbbce7f4b22d9ccf..09fb1ae12d16d02155f5338a2ba6824d15e1e378 100644 --- a/Samples/Graphics/SimpleTriangleUWP12/Package.appxmanifest +++ b/Samples/IntroGraphics/SimpleTriangleUWP12/Package.appxmanifest @@ -8,14 +8,14 @@ SimpleTriangleUWP12 - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Graphics/SimpleTriangleUWP12/PixelShader.hlsl b/Samples/IntroGraphics/SimpleTriangleUWP12/PixelShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/PixelShader.hlsl rename to Samples/IntroGraphics/SimpleTriangleUWP12/PixelShader.hlsl diff --git a/Samples/Graphics/SimpleTriangleUWP12/Readme.docx b/Samples/IntroGraphics/SimpleTriangleUWP12/Readme.docx similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/Readme.docx rename to Samples/IntroGraphics/SimpleTriangleUWP12/Readme.docx diff --git a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.cpp b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.cpp similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.cpp rename to Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.cpp diff --git a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.h b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.h rename to Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.h diff --git a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.sln b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.sln similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.sln rename to Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.sln diff --git a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj similarity index 98% rename from Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj rename to Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj index 0a6f5e6ad15f61383e47d979e97aa17f3a312395..9972274501398afb7ff180711f5f23830f4320ed 100644 --- a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj +++ b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj @@ -1,4 +1,4 @@ - + @@ -288,4 +288,4 @@ - + \ No newline at end of file diff --git a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj.filters b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj.filters similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj.filters rename to Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12.vcxproj.filters diff --git a/Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12_TemporaryKey.pfx b/Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12_TemporaryKey.pfx similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/SimpleTriangleUWP12_TemporaryKey.pfx rename to Samples/IntroGraphics/SimpleTriangleUWP12/SimpleTriangleUWP12_TemporaryKey.pfx diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/StepTimer.h b/Samples/IntroGraphics/SimpleTriangleUWP12/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/IntroGraphics/SimpleTriangleUWP12/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/Graphics/SimpleTriangleUWP12/VertexShader.hlsl b/Samples/IntroGraphics/SimpleTriangleUWP12/VertexShader.hlsl similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/VertexShader.hlsl rename to Samples/IntroGraphics/SimpleTriangleUWP12/VertexShader.hlsl diff --git a/Samples/Graphics/SimpleTriangleUWP12/d3dx12.h b/Samples/IntroGraphics/SimpleTriangleUWP12/d3dx12.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/d3dx12.h rename to Samples/IntroGraphics/SimpleTriangleUWP12/d3dx12.h diff --git a/Samples/IntroGraphics/SimpleTriangleUWP12/pch.cpp b/Samples/IntroGraphics/SimpleTriangleUWP12/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/IntroGraphics/SimpleTriangleUWP12/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/Graphics/SimpleTriangleUWP12/pch.h b/Samples/IntroGraphics/SimpleTriangleUWP12/pch.h similarity index 100% rename from Samples/Graphics/SimpleTriangleUWP12/pch.h rename to Samples/IntroGraphics/SimpleTriangleUWP12/pch.h diff --git a/Samples/System/CPUSets/CPUSets.cpp b/Samples/System/CPUSets/CPUSets.cpp index 8b2fb3a8ea879904cf6e24c22bf53da1d6e77384..4d48c659606b15bb1bd1ec000d1a2a5201f78fd4 100644 --- a/Samples/System/CPUSets/CPUSets.cpp +++ b/Samples/System/CPUSets/CPUSets.cpp @@ -113,6 +113,27 @@ void Sample::Update(DX::StepTimer const& /*timer*/) auto kb = m_keyboard->GetState(); m_keyboardButtons.Update(kb); + if (kb.A) + { + ULONG size; + HANDLE curProc = GetCurrentProcess(); + (void)GetSystemCpuSetInformation(nullptr, 0, &size, curProc, 0); + + std::unique_ptr buffer(new uint8_t[size]); + + PSYSTEM_CPU_SET_INFORMATION cpuSets = reinterpret_cast(buffer.get()); + GetSystemCpuSetInformation(cpuSets, size, &size, GetCurrentProcess(), 0); + + size_t count = 0; + while (size > 0) + { + size -= cpuSets[count].Size; + ++count; + } + + ReportCPUInformation(cpuSets, count); + } + if (kb.Escape) { Windows::ApplicationModel::Core::CoreApplication::Exit(); @@ -275,13 +296,25 @@ void Sample::ReportCPUInformation(SYSTEM_CPU_SET_INFORMATION* cpuSetInfo, size_t for (size_t i = 0; i < count; ++i) { wchar_t buffer[1024] = { L'\0' }; - swprintf_s(buffer, 1024, L"CPU ID: %i\n\tGroup: %i\n\tLogical index: %i\n\tCore index: %i\n\tCache ID: %i\n\tNUMA ID: %i\n", + swprintf_s(buffer, 1024, L"CPU ID: %i\n\tGroup: %i" + "\n\tLogical index: %i\n\tCore index: %i\n\tCache ID: %i" + "\n\tNUMA ID: %i\n\tEfficiency class: %i\n\tAll flags: %i" + "\n\tAllocated: %i\n\tAllocated to target: %i" + "\n\tParked: %i\n\tRealtime: %i\n\tReserved flags: %i\n\tReserved: %i\n", cpuSetInfo[i].CpuSet.Id, // Unique ID for every CPU core. This is the value to use with SetProcessDefaultCpuSets cpuSetInfo[i].CpuSet.Group, // Some PCs (mostly servers) have groups of CPU cores cpuSetInfo[i].CpuSet.LogicalProcessorIndex, // Index of the logical core of the CPU, relative to this CPU group cpuSetInfo[i].CpuSet.CoreIndex, // Index of the home core any logical core is associated with, relative to this CPU group cpuSetInfo[i].CpuSet.LastLevelCacheIndex, // ID of the memory cache this core uses, relative to this CPU group - cpuSetInfo[i].CpuSet.NumaNodeIndex); // ID of the NUMA group for this core, relative to this CPU group + cpuSetInfo[i].CpuSet.NumaNodeIndex, // ID of the NUMA group for this core, relative to this CPU group + cpuSetInfo[i].CpuSet.EfficiencyClass, + cpuSetInfo[i].CpuSet.AllFlags, + cpuSetInfo[i].CpuSet.Allocated, + cpuSetInfo[i].CpuSet.AllocatedToTargetProcess, + cpuSetInfo[i].CpuSet.Parked, + cpuSetInfo[i].CpuSet.RealTime, + cpuSetInfo[i].CpuSet.ReservedFlags, + cpuSetInfo[i].CpuSet.Reserved); OutputDebugString(buffer); } @@ -328,6 +361,44 @@ void Sample::OrganizeCPUSets(SYSTEM_CPU_SET_INFORMATION* cpuSetInfo, size_t coun } } } + + { + unsigned long retsize = 0; + (void)GetSystemCpuSetInformation(nullptr, 0, &retsize, + GetCurrentProcess(), 0); + + std::unique_ptr data(new uint8_t[retsize]); + if (!GetSystemCpuSetInformation( + reinterpret_cast(data.get()), + retsize, &retsize, GetCurrentProcess(), 0)) + { + // Error! + } + + unsigned long count2 = retsize / sizeof(SYSTEM_CPU_SET_INFORMATION); + bool sharedcache = false; + + std::map> cachemap; + for (size_t i = 0; i < count2; ++i) + { + auto cpuset = reinterpret_cast(data.get())[i]; + if (cpuset.Type == CPU_SET_INFORMATION_TYPE::CpuSetInformation) + { + if (cachemap.find(cpuset.CpuSet.LastLevelCacheIndex) == cachemap.end()) + { + std::pair> newvalue; + newvalue.first = cpuset.CpuSet.LastLevelCacheIndex; + newvalue.second.push_back(cpuset); + cachemap.insert(newvalue); + } + else + { + sharedcache = true; + cachemap[cpuset.CpuSet.LastLevelCacheIndex].push_back(cpuset); + } + } + } + } } unsigned long __stdcall Sample::GeneratorThread(void* params) diff --git a/Samples/System/CPUSets/CPUSets.h b/Samples/System/CPUSets/CPUSets.h index 18ff1052ea3fb70112ea6cd7f02ab1ef6a1e1ec7..56404785de641d1a08cc95e4e49fdba8b37d460c 100644 --- a/Samples/System/CPUSets/CPUSets.h +++ b/Samples/System/CPUSets/CPUSets.h @@ -46,7 +46,7 @@ public: HANDLE GetGraphicsMutex() { return m_graphicsMutex; } void SetWorldMatrix(DirectX::SimpleMath::Matrix& matrix) { m_world = matrix; } DirectX::AudioEngine* GetAudioEngine() { return m_audioEngine.get(); } - static const WCHAR* g_graphicsMutexName; + static const wchar_t* g_graphicsMutexName; bool CpuIsUsingHyperthreading() { return m_hyperThreading == HyperThreadedState::HyperThreaded; } diff --git a/Samples/System/CPUSets/CPUSets.vcxproj b/Samples/System/CPUSets/CPUSets.vcxproj index fd9862f521a2440f58caa6ce4595e5c696f83ae6..cf2d899084548e5225b78a3c4799ff9a9f0c64a2 100644 --- a/Samples/System/CPUSets/CPUSets.vcxproj +++ b/Samples/System/CPUSets/CPUSets.vcxproj @@ -1,4 +1,4 @@ - + @@ -100,9 +100,6 @@ CPUSets_TemporaryKey.pfx - True - Always - x86 @@ -259,4 +256,4 @@ - + \ No newline at end of file diff --git a/Samples/System/CPUSets/DeviceResources.cpp b/Samples/System/CPUSets/DeviceResources.cpp index ba23c3af40f17d50564addcc12fe1337f018fa22..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/CPUSets/DeviceResources.cpp +++ b/Samples/System/CPUSets/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/CPUSets/Package.appxmanifest b/Samples/System/CPUSets/Package.appxmanifest index 5c53a36f5f92052cf5ded662ff2f3eb4dbf8d8ce..4300a04c8812b6f50bfa86738af3565f23957a4e 100644 --- a/Samples/System/CPUSets/Package.appxmanifest +++ b/Samples/System/CPUSets/Package.appxmanifest @@ -1,10 +1,10 @@  - + CPUSets - ATG + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/CollisionUWP/Assets/Logo.png b/Samples/System/CollisionUWP/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/System/CollisionUWP/Assets/Logo.png differ diff --git a/Samples/System/CollisionUWP/Assets/SmallLogo.png b/Samples/System/CollisionUWP/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/System/CollisionUWP/Assets/SmallLogo.png differ diff --git a/Samples/System/CollisionUWP/Assets/SplashScreen.png b/Samples/System/CollisionUWP/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/System/CollisionUWP/Assets/SplashScreen.png differ diff --git a/Samples/System/CollisionUWP/Assets/StoreLogo.png b/Samples/System/CollisionUWP/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/System/CollisionUWP/Assets/StoreLogo.png differ diff --git a/Samples/System/CollisionUWP/Assets/WideLogo.png b/Samples/System/CollisionUWP/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/System/CollisionUWP/Assets/WideLogo.png differ diff --git a/Samples/System/CollisionUWP/Collision.cpp b/Samples/System/CollisionUWP/Collision.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d15e088a5680579f8d62f60ad97e4e044801856e --- /dev/null +++ b/Samples/System/CollisionUWP/Collision.cpp @@ -0,0 +1,720 @@ +//-------------------------------------------------------------------------------------- +// Collision.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "Collision.h" + +#include "ATGColors.h" +#include "DebugDraw.h" + +using namespace DirectX; +using namespace DirectX::SimpleMath; + +using Microsoft::WRL::ComPtr; + +namespace +{ + static const float c_cameraSpacing = 50.f; + + //-------------------------------------------------------------------------------------- + // Returns the color based on the collision result and the group number. + // Frustum tests (group 0) return 0, 1, or 2 for outside, partially inside, and fully inside; + // all other tests return 0 or 1 for no collision or collision. + //-------------------------------------------------------------------------------------- + inline XMVECTOR GetCollisionColor(ContainmentType collision, int groupnumber) + { + // special case: a value of 1 for groups 1 and higher needs to register as a full collision + if (groupnumber >= 3 && collision > 0) + collision = CONTAINS; + + switch (collision) + { + case DISJOINT: return ATG::Colors::Green; + case INTERSECTS: return ATG::Colors::Orange; + case CONTAINS: + default: return ATG::Colors::White; + } + } + + const wchar_t* g_SampleTitle = L"Collision sample"; + const wchar_t* g_SampleDescription = L"This sample demonstrates DirectXMath's collision types"; + const ATG::HelpButtonAssignment g_HelpButtons[] = { + { ATG::HelpID::MENU_BUTTON, L"Toggle help" }, + { ATG::HelpID::VIEW_BUTTON, L"Exit" }, + { ATG::HelpID::RIGHT_STICK, L"Orbit X/Y" }, + { ATG::HelpID::RIGHT_STICK_CLICK, L"Reset view" }, + { ATG::HelpID::DPAD_LEFT, L"Ray" }, + { ATG::HelpID::DPAD_RIGHT, L"Axis-aligned box" }, + { ATG::HelpID::DPAD_UP, L"Frustum" }, + { ATG::HelpID::DPAD_DOWN, L"Oriented box" }, + }; +} + +Sample::Sample() : + m_showHelp(false) +{ + m_deviceResources = std::make_unique(); + m_deviceResources->RegisterDeviceNotify(this); + + m_camera.SetRadius(25.f); + m_camera.SetSensitivity(5.f, 1.f, 10.f, .25f); + m_camera.SetProjectionParameters(XM_PI / 4.f, 0.1f, 1000.f); + m_camera.SetFlags(DX::OrbitCamera::c_FlagsDisableTranslation + | DX::OrbitCamera::c_FlagsDisableRollZ + | DX::OrbitCamera::c_FlagsArrowKeysOrbit + | DX::OrbitCamera::c_FlagsDisableRadiusControl + | DX::OrbitCamera::c_FlagsDisableSensitivityControl); + + m_help = std::make_unique(g_SampleTitle, g_SampleDescription, g_HelpButtons, _countof(g_HelpButtons)); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + InitializeObjects(); + + SetViewForGroup(0); + + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_mouse = std::make_unique(); + m_mouse->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const& timer) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + // Update position of collision objects. + Animate(timer.GetTotalSeconds()); + + // Compute collisions. + Collide(); + + float elapsedTime = float(timer.GetElapsedSeconds()); + + auto pad = m_gamePad->GetState(0); + if (pad.IsConnected()) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + if (m_gamePadButtons.menu == GamePad::ButtonStateTracker::PRESSED) + { + m_showHelp = !m_showHelp; + } + else if (m_showHelp && m_gamePadButtons.b == GamePad::ButtonStateTracker::PRESSED) + { + m_showHelp = false; + } + else if (!m_showHelp) + { + m_camera.Update(elapsedTime, pad); + + if (m_gamePadButtons.dpadUp == GamePad::ButtonStateTracker::PRESSED) + { + SetViewForGroup(0); + } + else if (m_gamePadButtons.dpadRight == GamePad::ButtonStateTracker::PRESSED) + { + SetViewForGroup(1); + } + else if (m_gamePadButtons.dpadDown == GamePad::ButtonStateTracker::PRESSED) + { + SetViewForGroup(2); + } + else if (m_gamePadButtons.dpadLeft == GamePad::ButtonStateTracker::PRESSED) + { + SetViewForGroup(3); + } + } + } + else + { + m_gamePadButtons.Reset(); + + if (!m_showHelp) + m_camera.Update(elapsedTime, *m_mouse, *m_keyboard); + } + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + // Keyboard input handling for controller help menu. + if (m_keyboardButtons.IsKeyPressed(Keyboard::F1)) + { + m_showHelp = !m_showHelp; + } + else if (m_showHelp && kb.Escape) + { + m_showHelp = false; + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::Escape)) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + else if (!m_showHelp) + { + if (m_keyboardButtons.IsKeyPressed(Keyboard::Keys::D1)) + { + SetViewForGroup(0); + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::Keys::D2)) + { + SetViewForGroup(1); + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::Keys::D3)) + { + SetViewForGroup(2); + } + else if (m_keyboardButtons.IsKeyPressed(Keyboard::Keys::D4)) + { + SetViewForGroup(3); + } + } + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + if (m_showHelp) + { + // Draw help screen. + m_help->Render(); + } + else + { + context->OMSetBlendState(m_states->Opaque(), nullptr, 0xFFFFFFFF); + context->OMSetDepthStencilState(m_states->DepthNone(), 0); + context->RSSetState(m_states->CullNone()); + + XMMATRIX projection = m_camera.GetProjection(); + + XMFLOAT4X4 orient = m_deviceResources->GetOrientationTransform3D(); + projection *= XMLoadFloat4x4(&orient); + + m_effect->SetView(m_camera.GetView()); + m_effect->SetProjection(projection); + m_effect->Apply(context); + + context->IASetInputLayout(m_layout.Get()); + + m_batch->Begin(); + + // Draw ground planes + for (size_t i = 0; i < c_groupCount; ++i) + { + static const XMVECTORF32 s_xAxis = { 20.f, 0.f, 0.f, 0.f }; + static const XMVECTORF32 s_yAxis = { 0.f, 0.f, 20.f, 0.f }; + + static const XMVECTORF32 s_Offset = { 0.f, 10.f, 0.f, 0.f }; + XMVECTOR origin = m_cameraOrigins[i] - s_Offset; + + DX::DrawGrid(m_batch.get(), s_xAxis, s_yAxis, origin, 20, 20, ATG::Colors::OffWhite); + } + + // Draw primary collision objects in white + DX::Draw(m_batch.get(), m_primaryFrustum, ATG::Colors::Blue); + DX::Draw(m_batch.get(), m_primaryAABox, ATG::Colors::Blue); + DX::Draw(m_batch.get(), m_primaryOrientedBox, ATG::Colors::Blue); + + { + XMVECTOR direction = XMVectorScale(m_primaryRay.direction, 10.0f); + DX::DrawRay(m_batch.get(), m_primaryRay.origin, direction, false, ATG::Colors::LightGrey); + DX::DrawRay(m_batch.get(), m_primaryRay.origin, direction, false, ATG::Colors::White); + } + + // Draw secondary collision objects in colors based on collision results + for (int i = 0; i < c_groupCount; ++i) + { + const CollisionSphere& sphere = m_secondarySpheres[i]; + XMVECTOR c = GetCollisionColor(sphere.collision, i); + DX::Draw(m_batch.get(), sphere.sphere, c); + + const CollisionBox& obox = m_secondaryOrientedBoxes[i]; + c = GetCollisionColor(obox.collision, i); + DX::Draw(m_batch.get(), obox.obox, c); + + const CollisionAABox& aabox = m_secondaryAABoxes[i]; + c = GetCollisionColor(aabox.collision, i); + DX::Draw(m_batch.get(), aabox.aabox, c); + + const CollisionTriangle& tri = m_secondaryTriangles[i]; + c = GetCollisionColor(tri.collision, i); + DX::DrawTriangle(m_batch.get(), tri.pointa, tri.pointb, tri.pointc, c); + } + + // Draw results of ray-object intersection, if there was a hit this frame + if (m_rayHitResultBox.collision != DISJOINT) + DX::Draw(m_batch.get(), m_rayHitResultBox.aabox, ATG::Colors::Orange); + + m_batch->End(); + + auto rect = m_deviceResources->GetOutputSize(); + + auto safeRect = Viewport::ComputeTitleSafeArea(rect.right, rect.bottom); + + m_sprites->Begin(); + + m_font->DrawString(m_sprites.get(), m_name.c_str(), XMFLOAT2(float(safeRect.left), float(safeRect.top)), ATG::Colors::White); + + m_sprites->End(); + } + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + auto depthStencil = m_deviceResources->GetDepthStencilView(); + + context->ClearRenderTargetView(renderTarget, ATG::Colors::Background); + context->ClearDepthStencilView(depthStencil, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); + + context->OMSetRenderTargets(1, &renderTarget, depthStencil); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); + m_camera.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto device = m_deviceResources->GetD3DDevice(); + auto context = m_deviceResources->GetD3DDeviceContext(); + + m_states = std::make_unique(device); + + m_batch = std::make_unique>(context); + + m_sprites = std::make_unique(context); + + m_font = std::make_unique(device, L"SegoeUI_18.spritefont"); + + m_effect = std::make_unique(device); + m_effect->SetVertexColorEnabled(true); + + { + void const* shaderByteCode; + size_t byteCodeLength; + + m_effect->GetVertexShaderBytecode(&shaderByteCode, &byteCodeLength); + + DX::ThrowIfFailed( + device->CreateInputLayout( + VertexPositionColor::InputElements, VertexPositionColor::InputElementCount, + shaderByteCode, byteCodeLength, + m_layout.ReleaseAndGetAddressOf())); + } + + // Set help device context. + m_help->RestoreDevice(context); +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + auto output = m_deviceResources->GetOutputSize(); + + m_camera.SetWindow(output.right - output.left, output.bottom - output.top); + + m_sprites->SetRotation(m_deviceResources->GetRotation()); + + // Set help rendering size. + m_help->SetWindow(output); +} + +void Sample::OnDeviceLost() +{ + m_states.reset(); + m_effect.reset(); + m_batch.reset(); + m_font.reset(); + m_sprites.reset(); + m_layout.Reset(); + + // Inform help of lost device. + m_help->ReleaseDevice(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion + + +void Sample::InitializeObjects() +{ + const XMVECTOR c_zero = XMVectorZero(); + + // Set up the primary frustum object from a D3D projection matrix + // NOTE: This can also be done on your camera's projection matrix. The projection + // matrix built here is somewhat contrived so it renders well. + XMMATRIX xmProj = XMMatrixPerspectiveFovLH( XM_PIDIV4, 1.77778f, 0.5f, 10.0f ); + BoundingFrustum::CreateFromMatrix( m_primaryFrustum, xmProj ); + m_primaryFrustum.Origin.z = -7.0f; + m_cameraOrigins[0] = c_zero; + + // Set up the primary axis aligned box + m_primaryAABox.Center = XMFLOAT3( c_cameraSpacing, 0, 0 ); + m_primaryAABox.Extents = XMFLOAT3( 5, 5, 5 ); + m_cameraOrigins[1] = Vector3( c_cameraSpacing, 0, 0 ); + + // Set up the primary oriented box with some rotation + m_primaryOrientedBox.Center = XMFLOAT3( -c_cameraSpacing, 0, 0 ); + m_primaryOrientedBox.Extents = XMFLOAT3( 5, 5, 5 ); + XMStoreFloat4( &m_primaryOrientedBox.Orientation, XMQuaternionRotationRollPitchYaw( XM_PIDIV4, XM_PIDIV4, 0 ) ); + m_cameraOrigins[2] = Vector3( -c_cameraSpacing, 0, 0 ); + + // Set up the primary ray + m_primaryRay.origin = Vector3( 0, 0, c_cameraSpacing ); + m_primaryRay.direction = Vector3::UnitZ; + m_cameraOrigins[3] = Vector3( 0, 0, c_cameraSpacing ); + + // Initialize all of the secondary objects with default values + for(size_t i = 0; i < c_groupCount; i++ ) + { + m_secondarySpheres[i].sphere.Radius = 1.0f; + m_secondarySpheres[i].sphere.Center = XMFLOAT3( 0, 0, 0 ); + m_secondarySpheres[i].collision = DISJOINT; + + m_secondaryOrientedBoxes[i].obox.Center = XMFLOAT3( 0, 0, 0 ); + m_secondaryOrientedBoxes[i].obox.Extents = XMFLOAT3( 0.5f, 0.5f, 0.5f ); + m_secondaryOrientedBoxes[i].obox.Orientation = XMFLOAT4( 0, 0, 0, 1 ); + m_secondaryOrientedBoxes[i].collision = DISJOINT; + + m_secondaryAABoxes[i].aabox.Center = XMFLOAT3( 0, 0, 0 ); + m_secondaryAABoxes[i].aabox.Extents = XMFLOAT3( 0.5f, 0.5f, 0.5f ); + m_secondaryAABoxes[i].collision = DISJOINT; + + m_secondaryTriangles[i].pointa = c_zero; + m_secondaryTriangles[i].pointb = c_zero; + m_secondaryTriangles[i].pointc = c_zero; + m_secondaryTriangles[i].collision = DISJOINT; + } + + // Set up ray hit result box + m_rayHitResultBox.aabox.Center = XMFLOAT3( 0, 0, 0 ); + m_rayHitResultBox.aabox.Extents = XMFLOAT3( 0.05f, 0.05f, 0.05f ); +} + +void Sample::Animate( double fTime ) +{ + float t = static_cast(fTime * 0.2); + + const float camera0OriginX = XMVectorGetX(m_cameraOrigins[0]); + const float camera1OriginX = XMVectorGetX(m_cameraOrigins[1]); + const float camera2OriginX = XMVectorGetX(m_cameraOrigins[2]); + const float camera3OriginX = XMVectorGetX(m_cameraOrigins[3]); + const float camera3OriginZ = XMVectorGetZ(m_cameraOrigins[3]); + + // animate sphere 0 around the frustum + m_secondarySpheres[0].sphere.Center.x = 10.f * sinf( 3.f * t ); + m_secondarySpheres[0].sphere.Center.y = 7.f * cosf( 5.f * t ); + + // animate oriented box 0 around the frustum + m_secondaryOrientedBoxes[0].obox.Center.x = 8.f * sinf( 3.5f * t ); + m_secondaryOrientedBoxes[0].obox.Center.y = 5.f * cosf( 5.1f * t ); + XMStoreFloat4( &( m_secondaryOrientedBoxes[0].obox.Orientation ), XMQuaternionRotationRollPitchYaw( t * 1.4f, t * 0.2f, t ) ); + + // animate aligned box 0 around the frustum + m_secondaryAABoxes[0].aabox.Center.x = 10.f * sinf( 2.1f * t ); + m_secondaryAABoxes[0].aabox.Center.y = 7.f * cosf( 3.8f * t ); + + // animate sphere 1 around the aligned box + m_secondarySpheres[1].sphere.Center.x = 8.f * sinf( 2.9f * t ) + camera1OriginX; + m_secondarySpheres[1].sphere.Center.y = 8.f * cosf( 4.6f * t ); + m_secondarySpheres[1].sphere.Center.z = 8.f * cosf( 1.6f * t ); + + // animate oriented box 1 around the aligned box + m_secondaryOrientedBoxes[1].obox.Center.x = 8.f * sinf( 3.2f * t ) + camera1OriginX; + m_secondaryOrientedBoxes[1].obox.Center.y = 8.f * cosf( 2.1f * t ); + m_secondaryOrientedBoxes[1].obox.Center.z = 8.f * sinf( 1.6f * t ); + XMStoreFloat4( &( m_secondaryOrientedBoxes[1].obox.Orientation ), XMQuaternionRotationRollPitchYaw( t * 0.7f, t * 1.3f, t ) ); + + // animate aligned box 1 around the aligned box + m_secondaryAABoxes[1].aabox.Center.x = 8.f * sinf( 1.1f * t ) + camera1OriginX; + m_secondaryAABoxes[1].aabox.Center.y = 8.f * cosf( 5.8f * t ); + m_secondaryAABoxes[1].aabox.Center.z = 8.f * cosf( 3.0f * t ); + + // animate sphere 2 around the oriented box + m_secondarySpheres[2].sphere.Center.x = 8.f * sinf( 2.2f * t ) + camera2OriginX; + m_secondarySpheres[2].sphere.Center.y = 8.f * cosf( 4.3f * t ); + m_secondarySpheres[2].sphere.Center.z = 8.f * cosf( 1.8f * t ); + + // animate oriented box 2 around the oriented box + m_secondaryOrientedBoxes[2].obox.Center.x = 8.f * sinf( 3.7f * t ) + camera2OriginX; + m_secondaryOrientedBoxes[2].obox.Center.y = 8.f * cosf( 2.5f * t ); + m_secondaryOrientedBoxes[2].obox.Center.z = 8.f * sinf( 1.1f * t ); + XMStoreFloat4( &( m_secondaryOrientedBoxes[2].obox.Orientation ), XMQuaternionRotationRollPitchYaw( t * 0.9f, t * 1.8f, t ) ); + + // animate aligned box 2 around the oriented box + m_secondaryAABoxes[2].aabox.Center.x = 8.f * sinf( 1.3f * t ) + camera2OriginX; + m_secondaryAABoxes[2].aabox.Center.y = 8.f * cosf( 5.2f * t ); + m_secondaryAABoxes[2].aabox.Center.z = 8.f * cosf( 3.5f * t ); + + // triangle points in local space - equilateral triangle with radius of 2 + const static XMVECTORF32 TrianglePointA = { 0.f, 2.f, 0.f, 0.f }; + const static XMVECTORF32 TrianglePointB = { 1.732f, -1.f, 0.f, 0.f }; + const static XMVECTORF32 TrianglePointC = { -1.732f, -1.f, 0.f, 0.f }; + + // animate triangle 0 around the frustum + XMMATRIX TriangleCoords = XMMatrixRotationRollPitchYaw( t * 1.4f, t * 2.5f, t ); + XMMATRIX Translation = XMMatrixTranslation( 5.f * sinf( 5.3f * t ) + camera0OriginX, 5.f * cosf( 2.3f * t ), 5.f * sinf( 3.4f * t ) ); + TriangleCoords = XMMatrixMultiply( TriangleCoords, Translation ); + m_secondaryTriangles[0].pointa = XMVector3Transform( TrianglePointA, TriangleCoords ); + m_secondaryTriangles[0].pointb = XMVector3Transform( TrianglePointB, TriangleCoords ); + m_secondaryTriangles[0].pointc = XMVector3Transform( TrianglePointC, TriangleCoords ); + + // animate triangle 1 around the aligned box + TriangleCoords = XMMatrixRotationRollPitchYaw( t * 1.4f, t * 2.5f, t ); + Translation = XMMatrixTranslation( 8.f * sinf( 5.3f * t ) + camera1OriginX, 8.f * cosf( 2.3f * t ), 8.f * sinf( 3.4f * t ) ); + TriangleCoords = XMMatrixMultiply( TriangleCoords, Translation ); + m_secondaryTriangles[1].pointa = XMVector3Transform( TrianglePointA, TriangleCoords ); + m_secondaryTriangles[1].pointb = XMVector3Transform( TrianglePointB, TriangleCoords ); + m_secondaryTriangles[1].pointc = XMVector3Transform( TrianglePointC, TriangleCoords ); + + // animate triangle 2 around the oriented box + TriangleCoords = XMMatrixRotationRollPitchYaw( t * 1.4f, t * 2.5f, t ); + Translation = XMMatrixTranslation( 8.f * sinf( 5.3f * t ) + camera2OriginX, 8.f * cosf( 2.3f * t ), 8.f * sinf( 3.4f * t ) ); + TriangleCoords = XMMatrixMultiply( TriangleCoords, Translation ); + m_secondaryTriangles[2].pointa = XMVector3Transform( TrianglePointA, TriangleCoords ); + m_secondaryTriangles[2].pointb = XMVector3Transform( TrianglePointB, TriangleCoords ); + m_secondaryTriangles[2].pointc = XMVector3Transform( TrianglePointC, TriangleCoords ); + + // animate primary ray (this is the only animated primary object) + m_primaryRay.direction = Vector3( sinf( t * 3.f), 0.f, cosf( t * 3.f) ); + + // animate sphere 3 around the ray + m_secondarySpheres[3].sphere.Center = XMFLOAT3( camera3OriginX - 3.f, 0.5f * sinf( t * 5.f), camera3OriginZ ); + + // animate aligned box 3 around the ray + m_secondaryAABoxes[3].aabox.Center = XMFLOAT3( camera3OriginX + 3.f, 0.5f * sinf( t * 4.f), camera3OriginZ ); + + // animate oriented box 3 around the ray + m_secondaryOrientedBoxes[3].obox.Center = XMFLOAT3( camera3OriginX, 0.5f * sinf( t * 4.5f ), camera3OriginZ + 3.f); + XMStoreFloat4( &( m_secondaryOrientedBoxes[3].obox.Orientation ), XMQuaternionRotationRollPitchYaw( t * 0.9f, t * 1.8f, t ) ); + + // animate triangle 3 around the ray + TriangleCoords = XMMatrixRotationRollPitchYaw( t * 1.4f, t * 2.5f, t ); + Translation = XMMatrixTranslation( camera3OriginX, 0.5f * cosf( 4.3f * t ), camera3OriginZ - 3.f ); + TriangleCoords = XMMatrixMultiply( TriangleCoords, Translation ); + m_secondaryTriangles[3].pointa = XMVector3Transform( TrianglePointA, TriangleCoords ); + m_secondaryTriangles[3].pointb = XMVector3Transform( TrianglePointB, TriangleCoords ); + m_secondaryTriangles[3].pointc = XMVector3Transform( TrianglePointC, TriangleCoords ); +} + +void Sample::Collide() +{ + // test collisions between objects and frustum + m_secondarySpheres[0].collision = m_primaryFrustum.Contains( m_secondarySpheres[0].sphere ); + m_secondaryOrientedBoxes[0].collision = m_primaryFrustum.Contains( m_secondaryOrientedBoxes[0].obox ); + m_secondaryAABoxes[0].collision = m_primaryFrustum.Contains( m_secondaryAABoxes[0].aabox ); + m_secondaryTriangles[0].collision = m_primaryFrustum.Contains( m_secondaryTriangles[0].pointa, + m_secondaryTriangles[0].pointb, + m_secondaryTriangles[0].pointc ); + + // test collisions between objects and aligned box + m_secondarySpheres[1].collision = m_primaryAABox.Contains( m_secondarySpheres[1].sphere ); + m_secondaryOrientedBoxes[1].collision = m_primaryAABox.Contains( m_secondaryOrientedBoxes[1].obox ); + m_secondaryAABoxes[1].collision = m_primaryAABox.Contains( m_secondaryAABoxes[1].aabox ); + m_secondaryTriangles[1].collision = m_primaryAABox.Contains( m_secondaryTriangles[1].pointa, + m_secondaryTriangles[1].pointb, + m_secondaryTriangles[1].pointc ); + + // test collisions between objects and oriented box + m_secondarySpheres[2].collision = m_primaryOrientedBox.Contains( m_secondarySpheres[2].sphere ); + m_secondaryOrientedBoxes[2].collision = m_primaryOrientedBox.Contains( m_secondaryOrientedBoxes[2].obox ); + m_secondaryAABoxes[2].collision = m_primaryOrientedBox.Contains( m_secondaryAABoxes[2].aabox ); + m_secondaryTriangles[2].collision = m_primaryOrientedBox.Contains( m_secondaryTriangles[2].pointa, + m_secondaryTriangles[2].pointb, + m_secondaryTriangles[2].pointc ); + + // test collisions between objects and ray + float fDistance = -1.0f; + + float fDist; + if ( m_secondarySpheres[3].sphere.Intersects( m_primaryRay.origin, m_primaryRay.direction, fDist ) ) + { + fDistance = fDist; + m_secondarySpheres[3].collision = INTERSECTS; + } + else + m_secondarySpheres[3].collision = DISJOINT; + + if ( m_secondaryOrientedBoxes[3].obox.Intersects( m_primaryRay.origin, m_primaryRay.direction, fDist ) ) + { + fDistance = fDist; + m_secondaryOrientedBoxes[3].collision = INTERSECTS; + } + else + m_secondaryOrientedBoxes[3].collision = DISJOINT; + + if ( m_secondaryAABoxes[3].aabox.Intersects( m_primaryRay.origin, m_primaryRay.direction, fDist ) ) + { + fDistance = fDist; + m_secondaryAABoxes[3].collision = INTERSECTS; + } + else + m_secondaryAABoxes[3].collision = DISJOINT; + + if ( TriangleTests::Intersects( m_primaryRay.origin, m_primaryRay.direction, + m_secondaryTriangles[3].pointa, + m_secondaryTriangles[3].pointb, + m_secondaryTriangles[3].pointc, + fDist ) ) + { + fDistance = fDist; + m_secondaryTriangles[3].collision = INTERSECTS; + } + else + m_secondaryTriangles[3].collision = DISJOINT; + + // If one of the ray intersection tests was successful, fDistance will be positive. + // If so, compute the intersection location and store it in g_RayHitResultBox. + if( fDistance > 0 ) + { + // The primary ray's direction is assumed to be normalized. + XMVECTOR HitLocation = XMVectorMultiplyAdd( m_primaryRay.direction, XMVectorReplicate( fDistance ), + m_primaryRay.origin ); + XMStoreFloat3( &m_rayHitResultBox.aabox.Center, HitLocation ); + m_rayHitResultBox.collision = INTERSECTS; + } + else + { + m_rayHitResultBox.collision = DISJOINT; + } +} + + +//-------------------------------------------------------------------------------------- +// Sets the camera to view a particular group of objects +//-------------------------------------------------------------------------------------- +void Sample::SetViewForGroup( int group ) +{ + assert( group < c_groupCount); + + m_camera.SetFocus(m_cameraOrigins[group]); + m_camera.SetRotation(XMQuaternionRotationRollPitchYaw(-XM_PI / 4.f, 0.f, 0.f)); + + switch (group) + { + default: m_name = L"Frustum"; break; + case 1: m_name = L"Axis-aligned box"; break; + case 2: m_name = L"Oriented box"; break; + case 3: m_name = L"Ray"; break; + } +} diff --git a/Samples/System/CollisionUWP/Collision.h b/Samples/System/CollisionUWP/Collision.h new file mode 100644 index 0000000000000000000000000000000000000000..5d4927d1e2fd8442dbec9be952bb3aa14fcdabad --- /dev/null +++ b/Samples/System/CollisionUWP/Collision.h @@ -0,0 +1,154 @@ +//-------------------------------------------------------------------------------------- +// Collision.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" +#include "ControllerHelp.h" +#include "OrbitCamera.h" + + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + +private: + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + void InitializeObjects(); + void Animate(double fTime); + void Collide(); + void SetViewForGroup(int group); + + // Device resources. + std::unique_ptr m_deviceResources; + + // Rendering loop timer. + DX::StepTimer m_timer; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + std::unique_ptr m_mouse; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; + + // Rendering objects. + std::unique_ptr m_states; + std::unique_ptr m_effect; + std::unique_ptr> m_batch; + std::unique_ptr m_font; + std::unique_ptr m_sprites; + + Microsoft::WRL::ComPtr m_layout; + + std::wstring m_name; + + // Sample Help. + std::unique_ptr m_help; + bool m_showHelp; + + // View camera. + DX::OrbitCamera m_camera; + + // Collision sample. + using BoundingSphere = DirectX::BoundingSphere; + using BoundingOrientedBox = DirectX::BoundingOrientedBox; + using BoundingBox = DirectX::BoundingBox; + using BoundingFrustum = DirectX::BoundingFrustum; + using ContainmentType = DirectX::ContainmentType; + using Vector3 = DirectX::SimpleMath::Vector3; + + struct CollisionSphere + { + BoundingSphere sphere; + ContainmentType collision; + }; + + struct CollisionBox + { + BoundingOrientedBox obox; + ContainmentType collision; + }; + + struct CollisionAABox + { + BoundingBox aabox; + ContainmentType collision; + }; + + struct CollisionFrustum + { + BoundingFrustum frustum; + ContainmentType collision; + }; + + struct CollisionTriangle + { + Vector3 pointa; + Vector3 pointb; + Vector3 pointc; + ContainmentType collision; + }; + + struct CollisionRay + { + Vector3 origin; + Vector3 direction; + }; + + static const size_t c_groupCount = 4; + + BoundingFrustum m_primaryFrustum; + BoundingOrientedBox m_primaryOrientedBox; + BoundingBox m_primaryAABox; + CollisionRay m_primaryRay; + + CollisionSphere m_secondarySpheres[c_groupCount]; + CollisionBox m_secondaryOrientedBoxes[c_groupCount]; + CollisionAABox m_secondaryAABoxes[c_groupCount]; + CollisionTriangle m_secondaryTriangles[c_groupCount]; + + CollisionAABox m_rayHitResultBox; + + Vector3 m_cameraOrigins[c_groupCount]; +}; \ No newline at end of file diff --git a/Samples/System/CollisionUWP/Collision.sln b/Samples/System/CollisionUWP/Collision.sln new file mode 100644 index 0000000000000000000000000000000000000000..802dfccafc0552f02ba5d53af146ab598435ace3 --- /dev/null +++ b/Samples/System/CollisionUWP/Collision.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Collision", "Collision.vcxproj", "{0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|ARM.ActiveCfg = Debug|ARM + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|ARM.Build.0 = Debug|ARM + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|ARM.Deploy.0 = Debug|ARM + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|x64.ActiveCfg = Debug|x64 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|x64.Build.0 = Debug|x64 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|x64.Deploy.0 = Debug|x64 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|x86.ActiveCfg = Debug|Win32 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|x86.Build.0 = Debug|Win32 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Debug|x86.Deploy.0 = Debug|Win32 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|ARM.ActiveCfg = Release|ARM + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|ARM.Build.0 = Release|ARM + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|ARM.Deploy.0 = Release|ARM + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|x64.ActiveCfg = Release|x64 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|x64.Build.0 = Release|x64 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|x64.Deploy.0 = Release|x64 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|x86.ActiveCfg = Release|Win32 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|x86.Build.0 = Release|Win32 + {0FDAF30A-3C4F-482B-B744-D8E0ED720BF8}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/System/CollisionUWP/Collision.vcxproj b/Samples/System/CollisionUWP/Collision.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..5105ccc05476c4acf2b715b2c860e45fa3c163d9 --- /dev/null +++ b/Samples/System/CollisionUWP/Collision.vcxproj @@ -0,0 +1,292 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {0fdaf30a-3c4f-482b-b744-d8e0ed720bf8} + DirectXApp + Collision + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Collision_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + Designer + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + + + + + \ No newline at end of file diff --git a/Samples/System/CollisionUWP/Collision.vcxproj.filters b/Samples/System/CollisionUWP/Collision.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..b931ba91d5769159f3fe1cbcf5b8e8b360374749 --- /dev/null +++ b/Samples/System/CollisionUWP/Collision.vcxproj.filters @@ -0,0 +1,96 @@ + + + + + 4f997ca7-682a-4977-9615-a9a7246ef390 + + + d6f4b9ac-4f29-4a83-bf72-9b37f8eb8c3d + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {35073fcb-7490-4930-8c71-c15e2d082b70} + + + + + + + Common + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + ATG Tool Kit + + + ATG Tool Kit + + + + + + + + Common + + + ATG Tool Kit + + + ATG Tool Kit + + + ATG Tool Kit + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + Assets + + + Assets + + + Assets + + + + \ No newline at end of file diff --git a/Samples/System/CollisionUWP/Collision_TemporaryKey.pfx b/Samples/System/CollisionUWP/Collision_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..e32b4dc979ddce45048a581daece7e107d227168 Binary files /dev/null and b/Samples/System/CollisionUWP/Collision_TemporaryKey.pfx differ diff --git a/Samples/System/CollisionUWP/DeviceResources.cpp b/Samples/System/CollisionUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/System/CollisionUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/System/CollisionUWP/DeviceResources.h b/Samples/System/CollisionUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/System/CollisionUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/System/CollisionUWP/Main.cpp b/Samples/System/CollisionUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..300b7d68b23f766feb4b7944314564b63a464c5d --- /dev/null +++ b/Samples/System/CollisionUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for universal Windows app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "Collision.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/System/CollisionUWP/Package.appxmanifest b/Samples/System/CollisionUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..e8ab3b31e4d207b120546dd633fe1d6807889e9a --- /dev/null +++ b/Samples/System/CollisionUWP/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + Collision + Xbox Advanced Technology Group + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/System/CollisionUWP/Readme.docx b/Samples/System/CollisionUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..21b215a5c283413f7bd925cc3426c8945f4c90dd Binary files /dev/null and b/Samples/System/CollisionUWP/Readme.docx differ diff --git a/Samples/System/CollisionUWP/StepTimer.h b/Samples/System/CollisionUWP/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/System/CollisionUWP/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/System/CollisionUWP/pch.cpp b/Samples/System/CollisionUWP/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/System/CollisionUWP/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/System/CollisionUWP/pch.h b/Samples/System/CollisionUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..d7939ddd2bcd924dd1e43b94dbbfcc5d59792611 --- /dev/null +++ b/Samples/System/CollisionUWP/pch.h @@ -0,0 +1,76 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +// Include the DirectXMath collision types +#include + +#include +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "CommonStates.h" +#include "Effects.h" +#include "GamePad.h" +#include "Keyboard.h" +#include "Mouse.h" +#include "PrimitiveBatch.h" +#include "SimpleMath.h" +#include "SpriteBatch.h" +#include "SpriteFont.h" +#include "VertexTypes.h" + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/System/GamepadUWP/DeviceResources.cpp b/Samples/System/GamepadUWP/DeviceResources.cpp index ba23c3af40f17d50564addcc12fe1337f018fa22..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/GamepadUWP/DeviceResources.cpp +++ b/Samples/System/GamepadUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/GamepadUWP/GamepadUWP.cpp b/Samples/System/GamepadUWP/GamepadUWP.cpp index 196148ad9db6456bfa419265a6e901272539615a..ed9586787c9e3483e15f4738f70db4ddf959e2e2 100644 --- a/Samples/System/GamepadUWP/GamepadUWP.cpp +++ b/Samples/System/GamepadUWP/GamepadUWP.cpp @@ -327,6 +327,7 @@ void Sample::CreateDeviceDependentResources() // Allocate all memory resources that change on a window SizeChanged event. void Sample::CreateWindowSizeDependentResources() { + m_spriteBatch->SetRotation(m_deviceResources->GetRotation()); } void Sample::OnDeviceLost() diff --git a/Samples/System/GamepadUWP/GamepadUWP.vcxproj b/Samples/System/GamepadUWP/GamepadUWP.vcxproj index c631676678eabdc5d40c03d90a80f041055f47d1..534cfea79f89cd26c0492ff3df6e7f876bac6618 100644 --- a/Samples/System/GamepadUWP/GamepadUWP.vcxproj +++ b/Samples/System/GamepadUWP/GamepadUWP.vcxproj @@ -1,4 +1,4 @@ - + @@ -274,4 +274,4 @@ - + \ No newline at end of file diff --git a/Samples/System/GamepadUWP/Package.appxmanifest b/Samples/System/GamepadUWP/Package.appxmanifest index ad6f4c420922da382fbeb66cda13d763896d38ea..8b178eb66823b1c7b4a2bdca948518a2b1d4589d 100644 --- a/Samples/System/GamepadUWP/Package.appxmanifest +++ b/Samples/System/GamepadUWP/Package.appxmanifest @@ -8,14 +8,14 @@ GamepadUWP - jeball + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/GamepadVibrationUWP/DeviceResources.cpp b/Samples/System/GamepadVibrationUWP/DeviceResources.cpp index ba23c3af40f17d50564addcc12fe1337f018fa22..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/GamepadVibrationUWP/DeviceResources.cpp +++ b/Samples/System/GamepadVibrationUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.cpp b/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.cpp index 4d162c3ad7bd1f19a97228d714aacbca8c343290..e6ce3a7c440e808c3bfe47bc6e8858be9385f0f2 100644 --- a/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.cpp +++ b/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.cpp @@ -567,6 +567,7 @@ void Sample::CreateDeviceDependentResources() // Allocate all memory resources that change on a window SizeChanged event. void Sample::CreateWindowSizeDependentResources() { + m_spriteBatch->SetRotation(m_deviceResources->GetRotation()); } void Sample::OnDeviceLost() diff --git a/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.vcxproj b/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.vcxproj index 189edd1f1e40fe59d94093586b0df7c0786cca29..660cd6a7107084da2e2fd32e26ea79ff6ade592d 100644 --- a/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.vcxproj +++ b/Samples/System/GamepadVibrationUWP/GamepadVibrationUWP.vcxproj @@ -1,4 +1,4 @@ - + @@ -274,4 +274,4 @@ - + \ No newline at end of file diff --git a/Samples/System/GamepadVibrationUWP/Package.appxmanifest b/Samples/System/GamepadVibrationUWP/Package.appxmanifest index eb9673dc5c30371e56d5e1bf8d88ecd92cbe0646..b04f9cbb7ba3ed2fb9b2e155d5de63c51aed87a0 100644 --- a/Samples/System/GamepadVibrationUWP/Package.appxmanifest +++ b/Samples/System/GamepadVibrationUWP/Package.appxmanifest @@ -8,14 +8,14 @@ GamepadVibrationUWP - jeball + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/MemoryStatisticsUWP/DeviceResources.cpp b/Samples/System/MemoryStatisticsUWP/DeviceResources.cpp index 426421b77d683eb3be26ad6b7adeff239d5abc2d..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/MemoryStatisticsUWP/DeviceResources.cpp +++ b/Samples/System/MemoryStatisticsUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -297,7 +296,7 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() swapChainDesc.BufferCount = m_backBufferCount; swapChainDesc.SampleDesc.Count = 1; swapChainDesc.SampleDesc.Quality = 0; - swapChainDesc.Scaling = DXGI_SCALING_STRETCH; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/MemoryStatisticsUWP/MemoryStatistics.cpp b/Samples/System/MemoryStatisticsUWP/MemoryStatistics.cpp index 7c363b023bb52ec8fe350c7a0c9984649f508456..53528a51106363565157345f5a4cf41266b1c475 100644 --- a/Samples/System/MemoryStatisticsUWP/MemoryStatistics.cpp +++ b/Samples/System/MemoryStatisticsUWP/MemoryStatistics.cpp @@ -12,6 +12,7 @@ #include "ControllerFont.h" using namespace DirectX; +using namespace DirectX::SimpleMath; using Microsoft::WRL::ComPtr; @@ -162,12 +163,12 @@ void Sample::Render() for (auto & teapot : m_teapots) { - auto world = SimpleMath::Matrix::CreateRotationY(teapot.m_lifeFrameCount++ / 100.f); + auto world = Matrix::CreateRotationY(teapot.m_lifeFrameCount++ / 100.f); teapot.m_teapot->Draw(world * teapot.m_location, m_view, m_projection); } auto rect = m_deviceResources->GetOutputSize(); - auto safeRect = SimpleMath::Viewport::ComputeTitleSafeArea(rect.right, rect.bottom); + auto safeRect = Viewport::ComputeTitleSafeArea(rect.right, rect.bottom); XMFLOAT2 pos(float(safeRect.left), float(safeRect.top)); @@ -320,9 +321,11 @@ void Sample::CreateDeviceDependentResources() // Allocate all memory resources that change on a window SizeChanged event. void Sample::CreateWindowSizeDependentResources() { - m_at = SimpleMath::Vector3(0.f, 0.f, -0.1f); - m_eye = SimpleMath::Vector3(0.0f, 0.0f, 0.0f); - m_view = SimpleMath::Matrix::CreateLookAt(m_eye, m_at, SimpleMath::Vector3::UnitY); + m_batch->SetRotation(m_deviceResources->GetRotation()); + + m_at = Vector3(0.f, 0.f, -0.1f); + m_eye = Vector3(0.0f, 0.0f, 0.0f); + m_view = Matrix::CreateLookAt(m_eye, m_at, Vector3::UnitY); auto size = m_deviceResources->GetOutputSize(); float aspectRatio = float(size.right) / float(size.bottom); @@ -335,12 +338,14 @@ void Sample::CreateWindowSizeDependentResources() fovAngleY *= 2.0f; } - m_projection = SimpleMath::Matrix::CreatePerspectiveFieldOfView( + Matrix projection = Matrix::CreatePerspectiveFieldOfView( fovAngleY, aspectRatio, 0.01f, 100.0f ); + + m_projection = projection * m_deviceResources->GetOrientationTransform3D(); } void Sample::OnDeviceLost() @@ -371,7 +376,7 @@ void Sample::CreateNewTeapot() TeapotData teapot; teapot.m_lifeFrameCount = 0; - teapot.m_location = SimpleMath::Matrix::CreateTranslation(FloatRand(-4.f, 4.f), FloatRand(-4.f, 4.f), FloatRand(-8.f, -4.f)); + teapot.m_location = Matrix::CreateTranslation(FloatRand(-4.f, 4.f), FloatRand(-4.f, 4.f), FloatRand(-8.f, -4.f)); m_teapots.push_back(teapot); m_teapots.back().m_teapot = DirectX::GeometricPrimitive::CreateTeapot(context); diff --git a/Samples/System/MemoryStatisticsUWP/MemoryStatistics.vcxproj b/Samples/System/MemoryStatisticsUWP/MemoryStatistics.vcxproj index e849864fef21b4c65bb4004c3c0a4acb8f41ab1e..d6a503efd9124f805c0032251bc24a393d39e514 100644 --- a/Samples/System/MemoryStatisticsUWP/MemoryStatistics.vcxproj +++ b/Samples/System/MemoryStatisticsUWP/MemoryStatistics.vcxproj @@ -1,4 +1,4 @@ - + @@ -271,4 +271,4 @@ - + \ No newline at end of file diff --git a/Samples/System/MemoryStatisticsUWP/Package.appxmanifest b/Samples/System/MemoryStatisticsUWP/Package.appxmanifest index ebb76c644fe1a6f0a499c7e512d67618ff8c8fa6..0d411ee4002be7afe5c507ec8f51208273cbad6b 100644 --- a/Samples/System/MemoryStatisticsUWP/Package.appxmanifest +++ b/Samples/System/MemoryStatisticsUWP/Package.appxmanifest @@ -1,10 +1,10 @@  - + MemoryStatistics - ATG + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/MouseCursor/DeviceResources.cpp b/Samples/System/MouseCursor/DeviceResources.cpp index 49dc516d686e80f874ab22d77eaa60873118d670..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/MouseCursor/DeviceResources.cpp +++ b/Samples/System/MouseCursor/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -352,29 +351,32 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() m_d3dRenderTargetView.ReleaseAndGetAddressOf() )); - // Create a depth stencil view for use with 3D rendering if needed. - CD3D11_TEXTURE2D_DESC depthStencilDesc( - m_depthBufferFormat, - backBufferWidth, - backBufferHeight, - 1, // This depth stencil view has only one texture. - 1, // Use a single mipmap level. - D3D11_BIND_DEPTH_STENCIL - ); + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); - ComPtr depthStencil; - DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( - &depthStencilDesc, - nullptr, - depthStencil.GetAddressOf() - )); + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); - CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); - DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( - depthStencil.Get(), - &depthStencilViewDesc, - m_d3dDepthStencilView.ReleaseAndGetAddressOf() - )); + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } // Set the 3D rendering viewport to target the entire window. m_screenViewport = CD3D11_VIEWPORT( @@ -522,8 +524,11 @@ void DX::DeviceResources::Present() // overwritten. If dirty or scroll rects are used, this call should be removed. m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); - // Discard the contents of the depth stencil. - m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } // If the device was removed either by a disconnection or a driver upgrade, we // must recreate all device resources. @@ -575,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/MouseCursor/MouseCursor.vcxproj b/Samples/System/MouseCursor/MouseCursor.vcxproj index 9f9ff310dd2d42c8d282f19c9feea2f03d787de3..75a94d985a70f40f55a8f0a13e5a213a8c8116a6 100644 --- a/Samples/System/MouseCursor/MouseCursor.vcxproj +++ b/Samples/System/MouseCursor/MouseCursor.vcxproj @@ -1,4 +1,4 @@ - + @@ -39,7 +39,6 @@ 10.0.10586.0 true 100 - neutral @@ -300,4 +299,4 @@ - + \ No newline at end of file diff --git a/Samples/System/MouseCursor/Package.appxmanifest b/Samples/System/MouseCursor/Package.appxmanifest index 28ad01a9a65e69e735e77572690215fefdb8eec7..5d661b571d4eed9a603016e629175923877155e2 100644 --- a/Samples/System/MouseCursor/Package.appxmanifest +++ b/Samples/System/MouseCursor/Package.appxmanifest @@ -8,14 +8,14 @@ MouseCursor - Microsoft ATG + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/de-DE/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/de-DE/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..5d056013e0bb5570c08602e335916464c0631c27 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/de-DE/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/en-GB/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/en-GB/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..2242110c7eded048787421dc2f325d6b9bb67e10 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/en-GB/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/en-US/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/en-US/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..f06ee74955347aff19ae33c57b69372b75190716 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/en-US/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/en/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/en/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..52c0ed3b1a8ae2132b1db81fc7a595b0b61fb661 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/en/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/fr-FR/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/fr-FR/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..5e14feee7e8ce0d9d8825e59bae8c1cc4506729c Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/fr-FR/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/fr/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/fr/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..acb7331b80e77128993374140bfe037a4a549f69 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/fr/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Images/ja-JP/Image.dds b/Samples/System/NLSAndLocalizationUWP/Assets/Images/ja-JP/Image.dds new file mode 100644 index 0000000000000000000000000000000000000000..cff8d2ad8f67919c2cb0ec78d4d27da78dd96aeb Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Images/ja-JP/Image.dds differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Logo.png b/Samples/System/NLSAndLocalizationUWP/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e704a106b99487be0f1eded426e6c5a2c65a9 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Logo.png differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/de-DE.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/de-DE.resources new file mode 100644 index 0000000000000000000000000000000000000000..1e6e8a6afb8c9af8b2535bdb7aa8bc4bc136f3ab Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/de-DE.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en-GB.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en-GB.resources new file mode 100644 index 0000000000000000000000000000000000000000..2e853322fdc573be836c69d50242ab22fea40666 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en-GB.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en-US.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en-US.resources new file mode 100644 index 0000000000000000000000000000000000000000..d2c3e5cbafa8320e8b1df39b7fecff12ccf9a123 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en-US.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en.resources new file mode 100644 index 0000000000000000000000000000000000000000..02bf72e820555cacceb6c4e232d6628fada61d61 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/en.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/fr-FR.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/fr-FR.resources new file mode 100644 index 0000000000000000000000000000000000000000..f809793754bcc1fec99cf9a3724a5e475954f676 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/fr-FR.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/fr.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/fr.resources new file mode 100644 index 0000000000000000000000000000000000000000..ff58ed00b7b794f810e4d7e1200499f2c20a0404 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/fr.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/Resources/ja-JP.resources b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/ja-JP.resources new file mode 100644 index 0000000000000000000000000000000000000000..4621c67e951c476f9b8e380f2e7c5e861e5d248b Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/Resources/ja-JP.resources differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/SmallLogo.png b/Samples/System/NLSAndLocalizationUWP/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..98b09d91991638282fc2426bbfd4a517733ff15a Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/SmallLogo.png differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/SplashScreen.png b/Samples/System/NLSAndLocalizationUWP/Assets/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..c352b156fd090a57aec7da81b3b19a3fb5888b43 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/SplashScreen.png differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/StoreLogo.png b/Samples/System/NLSAndLocalizationUWP/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..315472e10b9d380e509b2f041ea9ace5f994f5d2 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/StoreLogo.png differ diff --git a/Samples/System/NLSAndLocalizationUWP/Assets/WideLogo.png b/Samples/System/NLSAndLocalizationUWP/Assets/WideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c70f68e2c59214e0ff54844ccd8ae5e955826e10 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Assets/WideLogo.png differ diff --git a/Samples/System/NLSAndLocalizationUWP/DeviceResources.cpp b/Samples/System/NLSAndLocalizationUWP/DeviceResources.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/DeviceResources.cpp @@ -0,0 +1,592 @@ +// +// DeviceResources.cpp - A wrapper for the Direct3D 11 device and swapchain +// (requires DirectX 11.3 Runtime) +// + + +#include "pch.h" +#include "DeviceResources.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +namespace +{ +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif + + inline DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt) + { + switch (fmt) + { + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM; + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM; + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM; + default: return fmt; + } + } +}; + +// Constants used to calculate screen rotations +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources(DXGI_FORMAT backBufferFormat, DXGI_FORMAT depthBufferFormat, UINT backBufferCount, D3D_FEATURE_LEVEL minFeatureLevel) : + m_screenViewport{}, + m_backBufferFormat(backBufferFormat), + m_depthBufferFormat(depthBufferFormat), + m_backBufferCount(backBufferCount), + m_d3dMinFeatureLevel(minFeatureLevel), + m_window(nullptr), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_rotation(DXGI_MODE_ROTATION_IDENTITY), + m_outputSize{0, 0, 1, 1}, + m_orientationTransform3D(ScreenRotation::Rotation0), + m_deviceNotify(nullptr) +{ +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } + else + { + OutputDebugStringA("WARNING: Direct3D Debug Device is not available\n"); + } +#endif + + // Determine DirectX hardware feature levels this app will support. + static const D3D_FEATURE_LEVEL s_featureLevels[] = + { + D3D_FEATURE_LEVEL_12_1, + D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1, + }; + + UINT featLevelCount = 0; + for (; featLevelCount < _countof(s_featureLevels); ++featLevelCount) + { + if (s_featureLevels[featLevelCount] < m_d3dMinFeatureLevel) + break; + } + + if (!featLevelCount) + { + throw std::out_of_range("minFeatureLevel too high"); + } + + ComPtr adapter; + GetHardwareAdapter(adapter.GetAddressOf()); + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = E_FAIL; + if (adapter) + { + hr = D3D11CreateDevice( + adapter.Get(), + D3D_DRIVER_TYPE_UNKNOWN, + 0, + creationFlags, // Set debug and Direct2D compatibility flags. + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + context.GetAddressOf() // Returns the device immediate context. + ); + } +#if defined(NDEBUG) + else + { + throw std::exception("No Direct3D hardware device found"); + } +#else + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + s_featureLevels, + featLevelCount, + D3D11_SDK_VERSION, + device.GetAddressOf(), + &m_d3dFeatureLevel, + context.GetAddressOf() + ); + + if (SUCCEEDED(hr)) + { + OutputDebugStringA("Direct3D Adapter - WARP\n"); + } + } +#endif + + DX::ThrowIfFailed(hr); + +#ifndef NDEBUG + ComPtr d3dDebug; + if (SUCCEEDED(device.As(&d3dDebug))) + { + ComPtr d3dInfoQueue; + if (SUCCEEDED(d3dDebug.As(&d3dInfoQueue))) + { +#ifdef _DEBUG + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_CORRUPTION, true); + d3dInfoQueue->SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY_ERROR, true); +#endif + D3D11_MESSAGE_ID hide[] = + { + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, + }; + D3D11_INFO_QUEUE_FILTER filter = {}; + filter.DenyList.NumIDs = _countof(hide); + filter.DenyList.pIDList = hide; + d3dInfoQueue->AddStorageFilterEntries(&filter); + } + } +#endif + + DX::ThrowIfFailed(device.As(&m_d3dDevice)); + DX::ThrowIfFailed(context.As(&m_d3dContext)); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + if (!m_window) + { + throw std::exception("Call SetWindow with a valid CoreWindow pointer"); + } + + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = {nullptr}; + m_d3dContext->OMSetRenderTargets(_countof(nullViews), nullViews, nullptr); + m_d3dRenderTargetView.Reset(); + m_d3dDepthStencilView.Reset(); + m_d3dContext->Flush(); + + // Determine the render target size in pixels. + UINT backBufferWidth = std::max(m_outputSize.right - m_outputSize.left, 1); + UINT backBufferHeight = std::max(m_outputSize.bottom - m_outputSize.top, 1); + DXGI_FORMAT backBufferFormat = NoSRGB(m_backBufferFormat); + + if (m_swapChain) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + m_backBufferCount, + backBufferWidth, + backBufferHeight, + backBufferFormat, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on ResizeBuffers: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(dxgiAdapter.GetAddressOf())); + + ComPtr dxgiFactory; + DX::ThrowIfFailed(dxgiAdapter->GetParent(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); + + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {}; + swapChainDesc.Width = backBufferWidth; + swapChainDesc.Height = backBufferHeight; + swapChainDesc.Format = backBufferFormat; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = m_backBufferCount; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + ComPtr swapChain; + DX::ThrowIfFailed(dxgiFactory->CreateSwapChainForCoreWindow( + m_d3dDevice.Get(), + m_window, + &swapChainDesc, + nullptr, + swapChain.GetAddressOf() + )); + + DX::ThrowIfFailed(swapChain.As(&m_swapChain)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed(dxgiDevice->SetMaximumFrameLatency(1)); + } + + // Set the proper orientation for the swap chain, and generate + // matrix transformations for rendering to the rotated swap chain. + switch (m_rotation) + { + default: + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + } + + DX::ThrowIfFailed(m_swapChain->SetRotation(m_rotation)); + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed(m_swapChain->GetBuffer(0, IID_PPV_ARGS(backBuffer.GetAddressOf()))); + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDesc(D3D11_RTV_DIMENSION_TEXTURE2D, m_backBufferFormat); + DX::ThrowIfFailed(m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + &renderTargetViewDesc, + m_d3dRenderTargetView.ReleaseAndGetAddressOf() + )); + + if (m_depthBufferFormat != DXGI_FORMAT_UNKNOWN) + { + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + m_depthBufferFormat, + backBufferWidth, + backBufferHeight, + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + depthStencil.GetAddressOf() + )); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed(m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + m_d3dDepthStencilView.ReleaseAndGetAddressOf() + )); + } + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + static_cast(backBufferWidth), + static_cast(backBufferHeight) + ); +} + +// This method is called when the CoreWindow is created (or re-created). +void DX::DeviceResources::SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_window = window; + + m_outputSize.left = m_outputSize.top = 0; + m_outputSize.right = width; + m_outputSize.bottom = height; + + m_rotation = rotation; +} + +// This method is called when the window changes size +bool DX::DeviceResources::WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + RECT newRc; + newRc.left = newRc.top = 0; + newRc.right = width; + newRc.bottom = height; + if (newRc == m_outputSize && rotation == m_rotation) + { + return false; + } + + m_outputSize = newRc; + m_rotation = rotation; + CreateWindowSizeDependentResources(); + return true; +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + DXGI_ADAPTER_DESC previousDesc; + { + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(deviceAdapter.GetAddressOf())); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(deviceFactory.GetAddressOf()))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, previousDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + } + + DXGI_ADAPTER_DESC currentDesc; + { + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(currentFactory.GetAddressOf()))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, currentDefaultAdapter.GetAddressOf())); + + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + } + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart + || previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart + || FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { +#ifdef _DEBUG + OutputDebugStringA("Device Lost on ValidateDevice\n"); +#endif + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceLost(); + } + + m_d3dDepthStencilView.Reset(); + m_d3dRenderTargetView.Reset(); + m_swapChain.Reset(); + m_d3dContext.Reset(); + m_d3dDevice.Reset(); + +#ifdef _DEBUG + { + ComPtr dxgiDebug; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiDebug)))) + { + dxgiDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_FLAGS(DXGI_DEBUG_RLO_SUMMARY | DXGI_DEBUG_RLO_IGNORE_INTERNAL)); + } + } +#endif + + CreateDeviceResources(); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + if (SUCCEEDED(m_d3dDevice.As(&dxgiDevice))) + { + dxgiDevice->Trim(); + } +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + if (m_d3dDepthStencilView) + { + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + } + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { +#ifdef _DEBUG + char buff[64] = {}; + sprintf_s(buff, "Device Lost on Present: Reason code 0x%08X\n", (hr == DXGI_ERROR_DEVICE_REMOVED) ? m_d3dDevice->GetDeviceRemovedReason() : hr); + OutputDebugStringA(buff); +#endif + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method acquires the first available hardware adapter. +// If no such adapter can be found, *ppAdapter will be set to nullptr. +void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) +{ + *ppAdapter = nullptr; + + ComPtr dxgiFactory; +#ifdef _DEBUG + UINT creationFlags = 0; + + if (SdkLayersAvailable()) + { + creationFlags |= DXGI_CREATE_FACTORY_DEBUG; + } + + DX::ThrowIfFailed(CreateDXGIFactory2(creationFlags, IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#else + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(dxgiFactory.GetAddressOf()))); +#endif + + ComPtr adapter; + for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); adapterIndex++) + { + DXGI_ADAPTER_DESC1 desc; + adapter->GetDesc1(&desc); + + if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) + { + // Don't select the Basic Render Driver adapter. + continue; + } + +#ifdef _DEBUG + wchar_t buff[256] = {}; + swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); + OutputDebugStringW(buff); +#endif + + break; + } + + *ppAdapter = adapter.Detach(); +} \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/DeviceResources.h b/Samples/System/NLSAndLocalizationUWP/DeviceResources.h new file mode 100644 index 0000000000000000000000000000000000000000..1da562cac922f3a6421d6bb23ab08ac66697fe44 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/DeviceResources.h @@ -0,0 +1,83 @@ +// +// DeviceResources.h - A wrapper for the Direct3D 11 device and swapchain +// + +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(DXGI_FORMAT backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM, + DXGI_FORMAT depthBufferFormat = DXGI_FORMAT_D24_UNORM_S8_UINT, + UINT backBufferCount = 2, + D3D_FEATURE_LEVEL minFeatureLevel = D3D_FEATURE_LEVEL_9_3); + + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + void SetWindow(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + bool WindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify) { m_deviceNotify = deviceNotify; } + void Trim(); + void Present(); + + // Device Accessors. + RECT GetOutputSize() const { return m_outputSize; } + DXGI_MODE_ROTATION GetRotation() const { return m_rotation; } + + // Direct3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain3* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + DXGI_FORMAT GetBackBufferFormat() const { return m_backBufferFormat; } + DXGI_FORMAT GetDepthBufferFormat() const { return m_depthBufferFormat; } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + UINT GetBackBufferCount() const { return m_backBufferCount; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + private: + void GetHardwareAdapter(IDXGIAdapter1** ppAdapter); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct3D properties. + DXGI_FORMAT m_backBufferFormat; + DXGI_FORMAT m_depthBufferFormat; + UINT m_backBufferCount; + D3D_FEATURE_LEVEL m_d3dMinFeatureLevel; + + // Cached device properties. + IUnknown* m_window; + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + DXGI_MODE_ROTATION m_rotation; + RECT m_outputSize; + + // Transforms used for display orientation. + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/Main.cpp b/Samples/System/NLSAndLocalizationUWP/Main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7bdba2db9f310446346572d8b399e6ad87ceac79 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/Main.cpp @@ -0,0 +1,357 @@ +//-------------------------------------------------------------------------------------- +// Main.cpp +// +// Entry point for Universal Windows Platform (UWP) app. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "NLSAndLocalizationUWP.h" + +#include + +using namespace concurrency; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Core; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::ViewManagement; +using namespace Windows::System; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace DirectX; + +ref class ViewProvider sealed : public IFrameworkView +{ +public: + ViewProvider() : + m_exit(false), + m_visible(true), + m_DPI(96.f), + m_logicalWidth(800.f), + m_logicalHeight(600.f), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None) + { + } + + // IFrameworkView methods + virtual void Initialize(CoreApplicationView^ applicationView) + { + applicationView->Activated += ref new + TypedEventHandler(this, &ViewProvider::OnActivated); + + CoreApplication::Suspending += + ref new EventHandler(this, &ViewProvider::OnSuspending); + + CoreApplication::Resuming += + ref new EventHandler(this, &ViewProvider::OnResuming); + + m_sample = std::make_unique(); + } + + virtual void Uninitialize() + { + m_sample.reset(); + } + + virtual void SetWindow(CoreWindow^ window) + { + window->SizeChanged += + ref new TypedEventHandler(this, &ViewProvider::OnWindowSizeChanged); + + window->VisibilityChanged += + ref new TypedEventHandler(this, &ViewProvider::OnVisibilityChanged); + + window->Closed += + ref new TypedEventHandler(this, &ViewProvider::OnWindowClosed); + + auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; + + dispatcher->AcceleratorKeyActivated += + ref new TypedEventHandler(this, &ViewProvider::OnAcceleratorKeyActivated); + + auto currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &ViewProvider::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &ViewProvider::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &ViewProvider::OnDisplayContentsInvalidated); + + m_DPI = currentDisplayInformation->LogicalDpi; + + m_logicalWidth = window->Bounds.Width; + m_logicalHeight = window->Bounds.Height; + + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->Initialize(reinterpret_cast(window), + outputWidth, outputHeight, rotation ); + } + + virtual void Load(Platform::String^ entryPoint) + { + } + + virtual void Run() + { + while (!m_exit) + { + if (m_visible) + { + m_sample->Tick(); + + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); + } + else + { + CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending); + } + } + } + +protected: + // Event handlers + void OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args) + { + if (args->Kind == ActivationKind::Launch) + { + auto launchArgs = static_cast(args); + + if (launchArgs->PrelaunchActivated) + { + // Opt-out of Prelaunch + CoreApplication::Exit(); + return; + } + } + + int w, h; + m_sample->GetDefaultSize(w, h); + + m_DPI = DisplayInformation::GetForCurrentView()->LogicalDpi; + + ApplicationView::PreferredLaunchWindowingMode = ApplicationViewWindowingMode::PreferredLaunchViewSize; + // Change to ApplicationViewWindowingMode::FullScreen to default to full screen + + auto desiredSize = Size(ConvertPixelsToDips(w), ConvertPixelsToDips(h)); + + ApplicationView::PreferredLaunchViewSize = desiredSize; + + auto view = ApplicationView::GetForCurrentView(); + + auto minSize = Size(ConvertPixelsToDips(320), ConvertPixelsToDips(200)); + + view->SetPreferredMinSize(minSize); + + CoreWindow::GetForCurrentThread()->Activate(); + + view->FullScreenSystemOverlayMode = FullScreenSystemOverlayMode::Minimal; + + view->TryResizeView(desiredSize); + } + + void OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args) + { + SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); + + create_task([this, deferral]() + { + m_sample->OnSuspending(); + + deferral->Complete(); + }); + } + + void OnResuming(Platform::Object^ sender, Platform::Object^ args) + { + m_sample->OnResuming(); + } + + void OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args) + { + m_logicalWidth = sender->Bounds.Width; + m_logicalHeight = sender->Bounds.Height; + + HandleWindowSizeChanged(); + } + + void OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) + { + m_visible = args->Visible; + if (m_visible) + m_sample->OnActivated(); + else + m_sample->OnDeactivated(); + } + + void OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) + { + m_exit = true; + } + + void OnAcceleratorKeyActivated(CoreDispatcher^, AcceleratorKeyEventArgs^ args) + { + if (args->EventType == CoreAcceleratorKeyEventType::SystemKeyDown + && args->VirtualKey == VirtualKey::Enter + && args->KeyStatus.IsMenuKeyDown + && !args->KeyStatus.WasKeyDown) + { + // Implements the classic ALT+ENTER fullscreen toggle + auto view = ApplicationView::GetForCurrentView(); + + if (view->IsFullScreenMode) + view->ExitFullScreenMode(); + else + view->TryEnterFullScreenMode(); + + args->Handled = true; + } + } + + void OnDpiChanged(DisplayInformation^ sender, Object^ args) + { + m_DPI = sender->LogicalDpi; + + HandleWindowSizeChanged(); + } + + void OnOrientationChanged(DisplayInformation^ sender, Object^ args) + { + m_currentOrientation = sender->CurrentOrientation; + + HandleWindowSizeChanged(); + } + + void OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) + { + m_sample->ValidateDevice(); + } + +private: + bool m_exit; + bool m_visible; + float m_DPI; + float m_logicalWidth; + float m_logicalHeight; + std::unique_ptr m_sample; + + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + + inline int ConvertDipsToPixels(float dips) const + { + return int(dips * m_DPI / 96.f + 0.5f); + } + + inline float ConvertPixelsToDips(int pixels) const + { + return (float(pixels) * 96.f / m_DPI); + } + + DXGI_MODE_ROTATION ComputeDisplayRotation() const + { + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + + return rotation; + } + + void HandleWindowSizeChanged() + { + int outputWidth = ConvertDipsToPixels(m_logicalWidth); + int outputHeight = ConvertDipsToPixels(m_logicalHeight); + + DXGI_MODE_ROTATION rotation = ComputeDisplayRotation(); + + if (rotation == DXGI_MODE_ROTATION_ROTATE90 || rotation == DXGI_MODE_ROTATION_ROTATE270) + { + std::swap(outputWidth, outputHeight); + } + + m_sample->OnWindowSizeChanged(outputWidth, outputHeight, rotation); + } +}; + +ref class ViewProviderFactory : IFrameworkViewSource +{ +public: + virtual IFrameworkView^ CreateView() + { + return ref new ViewProvider(); + } +}; + + +// Entry point +[Platform::MTAThread] +int main(Platform::Array^ argv) +{ + UNREFERENCED_PARAMETER(argv); + + auto viewProviderFactory = ref new ViewProviderFactory(); + CoreApplication::Run(viewProviderFactory); + return 0; +} diff --git a/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.cpp b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7582a36d96c8fd00fbda1728f124ed76b694b90d --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.cpp @@ -0,0 +1,395 @@ +//-------------------------------------------------------------------------------------- +// NLSAndLocalizationUWP.cpp +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" +#include "NLSAndLocalizationUWP.h" + +#include "ATGColors.h" + +using namespace DirectX; + +using Microsoft::WRL::ComPtr; + +Sample::Sample() +{ + m_deviceResources = std::make_unique(DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_UNKNOWN); + m_deviceResources->RegisterDeviceNotify(this); + m_textConsole = std::make_unique(); +} + +// Initialize the Direct3D resources required to run. +void Sample::Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation) +{ + m_gamePad = std::make_unique(); + + m_keyboard = std::make_unique(); + m_keyboard->SetWindow(reinterpret_cast(window)); + + m_deviceResources->SetWindow(window, width, height, rotation); + + int retVal = GetUserDefaultLocaleName(m_localeName, ARRAYSIZE(m_localeName)); + if (retVal == 0) + throw std::exception("Failed to get locale in CreateDeviceDependenciesResources"); + swprintf_s(m_imagePrepend, _countof(m_imagePrepend), L"Assets\\Images\\%s\\", m_localeName); + swprintf_s(m_resFileName, _countof(m_resFileName), L"Assets\\Resources\\%s.resources", m_localeName); + + m_deviceResources->CreateDeviceResources(); + CreateDeviceDependentResources(); + + m_textConsole->SetForegroundColor(ATG::Colors::Orange); + + m_deviceResources->CreateWindowSizeDependentResources(); + CreateWindowSizeDependentResources(); + + InitializeLocalization(); +} + +void Sample::InitializeLocalization() +{ + + m_textConsole->Format(L"******* Using the NLS APIs *******\n"); + m_textConsole->Format(L"Note: All the strings except the ones with\nthe IDs in the Localization section\nare hard coded in English (not localized)\n\n"); + + // Get Package Details using the Package Id + Windows::ApplicationModel::Package^ package = Windows::ApplicationModel::Package::Current; + Windows::ApplicationModel::PackageId^ packageId = package->Id; + m_textConsole->Format(L"The Package Full Name is: %s\n", packageId->FullName->Data()); + + // Get the locale name for the system using GetUserDefaultLocaleName(). This will return the locale selected through the + // Settings app only if that locale has been added to the Resources section of the application's package manifest. + // In case the resource is absent fron the manifest, this API will return the first locale in the Resource Language. + wchar_t userLocaleName[LOCALE_NAME_MAX_LENGTH] = { L'\0' }; + wchar_t message[1024] = { L'\0' }; + int retVal = GetUserDefaultLocaleName(userLocaleName, ARRAYSIZE(userLocaleName)); + if (FunctionSucceeded(retVal, L"GetUserDefaultLocaleName")) + { + swprintf_s(message, L"GetUserDefaultLocaleName succeeded: %s\n", userLocaleName); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("GetUserDefaultLocaleName failed!"); + } + + unsigned long lcid = LocaleNameToLCID(userLocaleName, 0); + unsigned short primary = 0, sublang = 0; + if (FunctionSucceeded(lcid, L"LocalNameToLCID")) + { + primary = PRIMARYLANGID(lcid); + sublang = SUBLANGID(lcid); + swprintf_s(message, L"LocaleNameToLCID succeeded: %u\n\tPrimary ID: %u\n\tSublanguage: %u\n", lcid, primary, sublang); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("LocaleNameToLCID failed!"); + } + + // The GetUserGeoID() API can be used to get the actual country the kit is in. + // It gives you the country selected through the Settings app + long geoID = GetUserGeoID(GEOCLASS_NATION); + wchar_t geoData[LOCALE_NAME_MAX_LENGTH]; + retVal = GetGeoInfoW(geoID, GEO_LATITUDE, geoData, ARRAYSIZE(geoData), primary); + if (FunctionSucceeded(retVal, L"GetGeoInfoW")) + { + swprintf_s(message, L"Lattitude query succeeded: %s\n", geoData); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("GetGeoInfoW failed in GEO_LATTITUDE!"); + } + + retVal = GetGeoInfoW(geoID, GEO_LONGITUDE, geoData, ARRAYSIZE(geoData), primary); + if (FunctionSucceeded(retVal, L"GetGeoInfoW")) + { + swprintf_s(message, L"Longitude query succeeded: %s\n", geoData); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("GetGeoInfoW failed on GEO_LONGITUDE!"); + } + + retVal = GetGeoInfoW(geoID, GEO_NATION, geoData, ARRAYSIZE(geoData), primary); + if (FunctionSucceeded(retVal, L"GetGeoInfoW")) + { + swprintf_s(message, L"Nation query succeeded: %s\n", geoData); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("GetGeoInfoW failed on GEO_NATION!"); + } + + wchar_t iso2[3]; + retVal = GetGeoInfoW(geoID, GEO_ISO2, iso2, ARRAYSIZE(iso2), primary); + if (FunctionSucceeded(retVal, L"GetGeoInfoW")) + { + swprintf_s(message, L"Iso2 query succeeded: %s\n", iso2); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("GetGeoInfoW failed on GEO_ISO2!"); + } + + wchar_t iso3[4]; + retVal = GetGeoInfoW(geoID, GEO_ISO3, iso3, ARRAYSIZE(iso3), primary); + if (FunctionSucceeded(retVal, L"GetGeoInfoW")) + { + swprintf_s(message, L"Iso3 query succeeded: %s\n", iso3); + OutputDebugString(message); + m_textConsole->Write(message); + } + else + { + throw std::exception("GetGeoInfoW failed on GEO_ISO3!"); + } + + // The country values returned from GetUserDefaultLocaleName() and GetUserGeoID() can be compared + // to determine if the country selected by the user is supported by the app or not + std::wstring localeNameStr(userLocaleName); + std::wstring::size_type pos = localeNameStr.find(L'-'); + localeNameStr = localeNameStr.substr(pos + 1); + if (_wcsicmp(localeNameStr.c_str(), iso2) == 0 || _wcsicmp(localeNameStr.c_str(), iso3) == 0) + { + m_textConsole->Format(L"Selected locale in manifest. Country: %s\n", iso2); + } + else + { + m_textConsole->Format(L"The selected locale (Country: %s) is NOT present in the manifest, so the fallback locale (Country: %s) is selected for localization\n", iso2, localeNameStr.c_str()); +} + + wchar_t lcpData[LOCALE_NAME_MAX_LENGTH]; + retVal = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SISO639LANGNAME, lcpData, ARRAYSIZE(lcpData)); + if (FunctionSucceeded(retVal, L"GetLocaleInfoEx")) + { + m_textConsole->Format(L"GetLocaleInfoEx() - LOCALE_SISO639LANGNAME: %s\n", lcpData); + } + else + { + throw std::exception("GetLocaleInfoEx failed on LOCALE_SISO639LANGNAME!"); + } + + retVal = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_IDEFAULTLANGUAGE, lcpData, ARRAYSIZE(lcpData)); + if (FunctionSucceeded(retVal, L"GetLocaleInfoEx")) + { + m_textConsole->Format(L"GetLocaleInfoEx() - LOCALE_IDEFAULTLANGUAGE: %s\n", lcpData); + } + else + { + throw std::exception("GetLocaleInfoEx failed on LOCALE_IDEFAULTLANGUAGE!"); + } +} + +#pragma region Frame Update +// Executes basic render loop. +void Sample::Tick() +{ + m_timer.Tick([&]() + { + Update(m_timer); + }); + + Render(); +} + +// Updates the world. +void Sample::Update(DX::StepTimer const&) +{ + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Update"); + + auto pad = m_gamePad->GetState(0); + if (pad.IsConnected()) + { + m_gamePadButtons.Update(pad); + + if (pad.IsViewPressed()) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + } + else + { + m_gamePadButtons.Reset(); + } + + auto kb = m_keyboard->GetState(); + m_keyboardButtons.Update(kb); + + if (kb.Escape) + { + Windows::ApplicationModel::Core::CoreApplication::Exit(); + } + + PIXEndEvent(); +} +#pragma endregion + +#pragma region Frame Render +// Draws the scene. +void Sample::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return; + } + + Clear(); + + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Render"); + + m_textConsole->Render(); + + m_sprites->Begin(); + m_sprites->Draw(m_texture.Get(), XMFLOAT2(800, 75), nullptr, Colors::White, 0.f, XMFLOAT2(0,0), 0.2f); + m_sprites->End(); + + PIXEndEvent(context); + + // Show the new frame. + PIXBeginEvent(PIX_COLOR_DEFAULT, L"Present"); + m_deviceResources->Present(); + PIXEndEvent(); +} + +// Helper method to clear the back buffers. +void Sample::Clear() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + PIXBeginEvent(context, PIX_COLOR_DEFAULT, L"Clear"); + + // Clear the views. + auto renderTarget = m_deviceResources->GetBackBufferRenderTargetView(); + + context->ClearRenderTargetView(renderTarget, ATG::Colors::Background); + + context->OMSetRenderTargets(1, &renderTarget, nullptr); + + // Set the viewport. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + PIXEndEvent(context); +} +#pragma endregion + +#pragma region Message Handlers +// Message handlers +void Sample::OnActivated() +{ +} + +void Sample::OnDeactivated() +{ +} + +void Sample::OnSuspending() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + context->ClearState(); + + m_deviceResources->Trim(); +} + +void Sample::OnResuming() +{ + m_timer.ResetElapsedTime(); + m_gamePadButtons.Reset(); + m_keyboardButtons.Reset(); +} + +void Sample::OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation) +{ + if (!m_deviceResources->WindowSizeChanged(width, height, rotation)) + return; + + CreateWindowSizeDependentResources(); +} + +void Sample::ValidateDevice() +{ + m_deviceResources->ValidateDevice(); +} + +// Properties +void Sample::GetDefaultSize(int& width, int& height) const +{ + width = 1280; + height = 720; +} +#pragma endregion + +#pragma region Direct3D Resources +// These are the resources that depend on the device. +void Sample::CreateDeviceDependentResources() +{ + auto context = m_deviceResources->GetD3DDeviceContext(); + auto device = m_deviceResources->GetD3DDevice(); + + // setup the text console for output + m_textConsole->RestoreDevice(context, L"SegoeUI_18.spritefont"); + + // parse the resource file to find the right localized image to display + ResourceParser resParser(m_localeName, m_imagePrepend); + DX::ThrowIfFailed(resParser.ParseFile(m_resFileName)); + Platform::String^ idImage = ref new Platform::String(L"Gamepad"); + Platform::String^ imageString = resParser.GetImage(idImage); + + DX::ThrowIfFailed(CreateDDSTextureFromFile(device, imageString->Data(), nullptr, m_texture.ReleaseAndGetAddressOf())); + + m_sprites = std::make_unique(context); + +} + +// Allocate all memory resources that change on a window SizeChanged event. +void Sample::CreateWindowSizeDependentResources() +{ + auto rect = m_deviceResources->GetOutputSize(); + m_textConsole->SetWindow(rect); + + DXGI_MODE_ROTATION rotation = m_deviceResources->GetRotation(); + m_textConsole->SetRotation(rotation); + m_sprites->SetRotation(rotation); +} + +void Sample::OnDeviceLost() +{ + m_textConsole->ReleaseDevice(); + m_texture.Reset(); + m_sprites.reset(); +} + +void Sample::OnDeviceRestored() +{ + CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} +#pragma endregion + +bool Sample::FunctionSucceeded(int returned, const wchar_t* function) +{ + if (returned == 0) + { + unsigned long error = GetLastError(); + wchar_t message[1024] = { L'\0' }; + swprintf_s(message, L"%s failed with error: %u\n", function, error); + OutputDebugString(message); + return false; + } + return true; +} diff --git a/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.h b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.h new file mode 100644 index 0000000000000000000000000000000000000000..4f377f0b567114560602f411048acdc47afe302c --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.h @@ -0,0 +1,78 @@ +//-------------------------------------------------------------------------------------- +// NLSAndLocalizationUWP.h +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +#include "DeviceResources.h" +#include "StepTimer.h" + + +// A basic sample implementation that creates a D3D11 device and +// provides a render loop. +class Sample : public DX::IDeviceNotify +{ +public: + + Sample(); + + // Initialization and management + void Initialize(IUnknown* window, int width, int height, DXGI_MODE_ROTATION rotation); + + // Basic render loop + void Tick(); + void Render(); + + // Rendering helpers + void Clear(); + + // IDeviceNotify + virtual void OnDeviceLost() override; + virtual void OnDeviceRestored() override; + + // Messages + void OnActivated(); + void OnDeactivated(); + void OnSuspending(); + void OnResuming(); + void OnWindowSizeChanged(int width, int height, DXGI_MODE_ROTATION rotation); + void ValidateDevice(); + + // Properties + void GetDefaultSize( int& width, int& height ) const; + + void InitializeLocalization(); + +private: + + void Update(DX::StepTimer const& timer); + + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + bool FunctionSucceeded(int returned, const wchar_t* function); + + std::unique_ptr m_textConsole; + Microsoft::WRL::ComPtr m_texture; + std::unique_ptr m_sprites; + + wchar_t m_imagePrepend[256]; + wchar_t m_resFileName[256]; + wchar_t m_localeName[LOCALE_NAME_MAX_LENGTH]; + + // Device resources. + std::unique_ptr m_deviceResources; + + // Rendering loop timer. + DX::StepTimer m_timer; + + // Input devices. + std::unique_ptr m_gamePad; + std::unique_ptr m_keyboard; + + DirectX::GamePad::ButtonStateTracker m_gamePadButtons; + DirectX::Keyboard::KeyboardStateTracker m_keyboardButtons; +}; \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.sln b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.sln new file mode 100644 index 0000000000000000000000000000000000000000..5aba5d65185ebeadcc0fbe539c046dd50aac2cb2 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.sln @@ -0,0 +1,54 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NLSAndLocalizationUWP", "NLSAndLocalizationUWP.vcxproj", "{D5C2A063-6F5B-4A35-9864-811836B869F3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK", "..\..\..\Kits\DirectXTK\DirectXTK_Windows10.vcxproj", "{F4776924-619C-42C7-88B2-82C947CCC9E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|ARM.ActiveCfg = Debug|ARM + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|ARM.Build.0 = Debug|ARM + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|ARM.Deploy.0 = Debug|ARM + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|x64.ActiveCfg = Debug|x64 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|x64.Build.0 = Debug|x64 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|x64.Deploy.0 = Debug|x64 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|x86.ActiveCfg = Debug|Win32 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|x86.Build.0 = Debug|Win32 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Debug|x86.Deploy.0 = Debug|Win32 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|ARM.ActiveCfg = Release|ARM + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|ARM.Build.0 = Release|ARM + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|ARM.Deploy.0 = Release|ARM + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|x64.ActiveCfg = Release|x64 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|x64.Build.0 = Release|x64 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|x64.Deploy.0 = Release|x64 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|x86.ActiveCfg = Release|Win32 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|x86.Build.0 = Release|Win32 + {D5C2A063-6F5B-4A35-9864-811836B869F3}.Release|x86.Deploy.0 = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.ActiveCfg = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|ARM.Build.0 = Debug|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.ActiveCfg = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x64.Build.0 = Debug|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.ActiveCfg = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Debug|x86.Build.0 = Debug|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.ActiveCfg = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|ARM.Build.0 = Release|ARM + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.ActiveCfg = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x64.Build.0 = Release|x64 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.ActiveCfg = Release|Win32 + {F4776924-619C-42C7-88B2-82C947CCC9E7}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.vcxproj b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..38309b01d051c43568dcf4bf02621bccd862ed25 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.vcxproj @@ -0,0 +1,347 @@ + + + + 4.0 + en-US + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {d5c2a063-6f5b-4a35-9864-811836b869f3} + DirectXApp + NLSAndLocalizationUWP + en-US + 14.0 + true + Windows Store + 10.0.10586.0 + 10.0.10240.0 + 10.0 + true + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + Application + false + true + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + NLSAndLocalizationUWP_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + StreamingSIMDExtensions2 + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + _DEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + d2d1.lib; d3d11.lib; dxgi.lib; dxguid.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);..\..\..\Kits\DirectXTK\Inc;..\..\..\Kits\ATGTK;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + Level4 + NDEBUG;%(PreprocessorDefinitions) + Fast + + + 4.0_level_9_3 + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + + Designer + + + true + Document + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + {f4776924-619c-42c7-88b2-82c947ccc9e7} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.vcxproj.filters b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..0e90d927a2984af9059d0cfc73cab61aaaad88bf --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP.vcxproj.filters @@ -0,0 +1,160 @@ + + + + + 12e35a05-c571-407b-a4d2-c490381fdae4 + + + d87e2e07-26bb-4948-964b-9162637e775e + bmp;dds;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + {c190b076-f562-41bb-ace1-a579fd3c7b13} + + + {1ff65181-7f66-41c8-8267-744179079d68} + + + {33a74448-dd89-4bb3-ae1a-7c67f38e13e3} + + + {4c3a78ce-9e66-4216-9a9b-d2344cebd10f} + + + {2cbd252c-9de2-4370-9d65-6f024f02bdac} + + + {47211043-0943-4002-9ee2-e797120e2490} + + + {81031a87-ff1b-44f8-9166-7dec44ed39fc} + + + {f87ce996-7ed7-4905-8f71-b37ceca2268e} + + + + + + + Common + + + ATG Toolkit + + + Common + + + + ATG Toolkit + + + ATG Toolkit + + + + + + + + ATG Toolkit + + + Common + + + + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + de-DE + + + en + + + en-GB + + + en-US + + + fr + + + fr-FR + + + ja-JP + + + + + + + + + de-DE + + + en + + + en-GB + + + en-US + + + fr + + + fr-FR + + + ja-JP + + + + + + de-DE + + + en + + + en-GB + + + en-US + + + fr + + + fr-FR + + + ja-JP + + + + + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP_TemporaryKey.pfx b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..fd5af4091ab1a87ddfd3964b5348f641ae7e3b1c Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/NLSAndLocalizationUWP_TemporaryKey.pfx differ diff --git a/Samples/System/NLSAndLocalizationUWP/Package.appxmanifest b/Samples/System/NLSAndLocalizationUWP/Package.appxmanifest new file mode 100644 index 0000000000000000000000000000000000000000..663dc6c5693206c5b57c389994cb4f8c37194ce0 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/Package.appxmanifest @@ -0,0 +1,35 @@ + + + + + + NLSAndLocalizationUWP + Microsoft + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/Readme.docx b/Samples/System/NLSAndLocalizationUWP/Readme.docx new file mode 100644 index 0000000000000000000000000000000000000000..f066f87de01c8ef8beb6488640b7dec971451f50 Binary files /dev/null and b/Samples/System/NLSAndLocalizationUWP/Readme.docx differ diff --git a/Samples/System/NLSAndLocalizationUWP/ResourceParser.cpp b/Samples/System/NLSAndLocalizationUWP/ResourceParser.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cb7c31ee741ba01fbb8a9d94d29465d65078c6e4 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/ResourceParser.cpp @@ -0,0 +1,205 @@ +//-------------------------------------------------------------------------------------- +// ResourceParser.cpp +// +// Class to handle resource parsing. +// +// This is just a sample class parsing some temporary resource files. +// The resource files can be in any format you choose. +// This class doesn't perform many checks against wrong file formatting. +// It assumes that the resource file will not be tampered with. The goal is to show +// how to use resources for localization. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once +#include "pch.h" +#include "ResourceParser.h" + +#define FILE_CONTENT_SIZE 2048 + +ResourceParser::ResourceParser(void) +{ + m_localeName = ref new Platform::String(); + m_appendImageStr = ref new Platform::String(); + m_stringMap = ref new Platform::Collections::Map< Platform::String^, Platform::String^ >( ); + m_imageMap = ref new Platform::Collections::Map< Platform::String^, Platform::String^ >( ); +} + +ResourceParser::ResourceParser( wchar_t* localeName, wchar_t* appendImageStr ) +{ + m_localeName = ref new Platform::String( localeName ); + m_appendImageStr = ref new Platform::String( appendImageStr ); + m_stringMap = ref new Platform::Collections::Map< Platform::String^, Platform::String^ >( ); + m_imageMap = ref new Platform::Collections::Map< Platform::String^, Platform::String^ >( ); +} + +// Parse the resources file to get the string and image data +HRESULT ResourceParser::ParseFile( const wchar_t* fileName ) +{ + HANDLE hFile = CreateFile2( fileName, + GENERIC_READ, + FILE_SHARE_READ, + OPEN_EXISTING, + NULL ); + + if (hFile == NULL || hFile == INVALID_HANDLE_VALUE) + { + return GetLastError(); + } + + // Read the file contents into a buffer + wchar_t buf[ FILE_CONTENT_SIZE ]; + DWORD charRead; + if ( hFile ) + { + DWORD bytesRead; + if ( !ReadFile( hFile, buf, FILE_CONTENT_SIZE, &bytesRead, NULL ) ) + { + return GetLastError(); + } + + charRead = bytesRead / sizeof( wchar_t ); + buf[charRead] = '\0'; + } + + std::wstring wstrbuf( buf ); + while ( wstrbuf.length() > 0 ) + { + std::wstring wstr; + + std::string token; + std::wstring::size_type pos1, pos2, bufEndPos; + Platform::String^ idToken = ref new Platform::String( L"" ); + Platform::String^ valueToken = ref new Platform::String( L"" ); + + pos1 = wstrbuf.find( L'<' ); + pos2 = wstrbuf.find( L'>' ); + bufEndPos = pos2; + + // Handle the case where a / is present just before /> + if( wstrbuf[ pos2-1 ] == '/' ) + { + --pos2; + } + wstr = wstrbuf.substr( pos1+1, pos2-(pos1+1) ); + wstrbuf = wstrbuf.substr( bufEndPos+1 ); + + TrimString( wstr ); + pos1 = wstr.find(L' '); + std::wstring resType = wstr.substr( 0, pos1 ); + wstr = wstr.substr( pos1+1 ); + + // Parse the data within a node into Id and Value attributes + // The assumption is that all the nodes in the resource file will have an Id and Value field + // Put these values into a map which can be retrieved later from the app as and when required + // Create a separate map for image and string data + while( wstr.length() > 0 ) + { + pos1 = wstr.find(L'='); + std::wstring token1 = wstr.substr( 0, pos1 ); + TrimString( token1 ); + wstr = wstr.substr( pos1+1 ); + + // Find the string between quotes + pos1 = wstr.find( '"' ); + if ( pos1 == std::wstring::npos ) + { + // Error in structure + return S_FALSE; + } + pos2 = wstr.find( '"', pos1+1 ); + + while ( pos2 != std::wstring::npos && wstr[pos2-1] == '\\' ) + { + // Check if a backslash is present within the string. Ignore those quotes + pos2 = wstr.find( '"', pos2+1 ); + } + if ( pos2 == std::wstring::npos ) + { + // Error in structure + return S_FALSE; + } + + std::wstring token2 = wstr.substr( pos1+1, pos2-(pos1+1) ); + TrimString( token2 ); + wstr = wstr.substr( pos2+1 ); + + if ( _wcsicmp( token1.c_str(), L"ID" ) == 0 ) + { + idToken = nullptr; + idToken = ref new Platform::String( token2.c_str() ); + } + else if ( _wcsicmp( token1.c_str(), L"Value" ) == 0 ) + { + valueToken = nullptr; + valueToken = ref new Platform::String( token2.c_str() ); + } + + if ( idToken->Length() > 0 && valueToken->Length() > 0 ) + { + if ( _wcsicmp( resType.c_str(), L"String" ) == 0 ) + { + m_stringMap->Insert( idToken, valueToken ); + } + else if ( _wcsicmp( resType.c_str(), L"Image" ) == 0 ) + { + valueToken = valueToken->Concat( m_appendImageStr, valueToken ); + m_imageMap->Insert( idToken, valueToken ); + } + idToken = nullptr; + valueToken = nullptr; + } + + } + } + + CloseHandle( hFile ); + return S_OK; +} + +// Trim the string to remove spaces from its beginning and end +void ResourceParser::TrimString( std::wstring& wstr ) +{ + // Remove spaces from the begining + UINT spaceCnt = ( UINT ) wstr.find_first_not_of( L' ' ); + wstr = wstr.substr( spaceCnt ); + + // Remove spaces from the end + spaceCnt = ( UINT ) wstr.find_last_not_of( L' ' ); + wstr = wstr.substr( 0, spaceCnt + 1 ); +} + +// Get the string value based on the Id +Platform::String^ ResourceParser::GetString( Platform::String^ id ) +{ + if ( m_stringMap->HasKey( id ) ) + { + return m_stringMap->Lookup( id ); + } + else + { + return nullptr; + } +} + +// Get the image name based on the Id +Platform::String^ ResourceParser::GetImage( Platform::String^ id ) +{ + if ( m_imageMap->HasKey( id ) ) + { + return m_imageMap->Lookup( id ); + } + else + { + return nullptr; + } +} + +ResourceParser::~ResourceParser(void) +{ + m_localeName = nullptr; + m_stringMap = nullptr; + m_imageMap = nullptr; +} diff --git a/Samples/System/NLSAndLocalizationUWP/ResourceParser.h b/Samples/System/NLSAndLocalizationUWP/ResourceParser.h new file mode 100644 index 0000000000000000000000000000000000000000..dce5e1473b4a2ff24eed45538b9c8c636f6ce49b --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/ResourceParser.h @@ -0,0 +1,38 @@ +//-------------------------------------------------------------------------------------- +// ResourceParser.h +// +// Class to handle resource parsing. +// +// This is just a sample class parsing some temporary resource files. +// The resource files can be in any format you choose. +// This class doesn't perform many checks against wrong file formatting. +// It assumes that the resource file will not be tampered with. The goal is to show +// how to use resources for localization. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once +#include "pch.h" +#include + +class ResourceParser +{ +public: + ResourceParser(void); + ResourceParser( wchar_t* localeName, wchar_t* appendImageStr ); + ~ResourceParser(void); + + HRESULT ParseFile( const wchar_t* filename ); + Platform::String^ GetString( Platform::String^ id ); + Platform::String^ GetImage( Platform::String^ id ); + +private: + void TrimString( std::wstring& wstr ); + + Platform::String^ m_localeName; + Platform::String^ m_appendImageStr; + Platform::Collections::Map< Platform::String^, Platform::String^ >^ m_stringMap; + Platform::Collections::Map< Platform::String^, Platform::String^ >^ m_imageMap; +}; diff --git a/Samples/System/NLSAndLocalizationUWP/StepTimer.h b/Samples/System/NLSAndLocalizationUWP/StepTimer.h new file mode 100644 index 0000000000000000000000000000000000000000..e6f7acf56417f3184f8c17beecfbb1aaa124cdaf --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/StepTimer.h @@ -0,0 +1,188 @@ +// +// StepTimer.h - A simple timer that provides elapsed time information +// + +#pragma once + +#include +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw std::exception( "QueryPerformanceFrequency" ); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64_t GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64_t GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32_t GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32_t GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64_t targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64_t TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64_t ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64_t SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw std::exception("QueryPerformanceCounter"); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw std::exception( "QueryPerformanceCounter" ); + } + + uint64_t timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32_t lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64_t m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64_t m_elapsedTicks; + uint64_t m_totalTicks; + uint64_t m_leftOverTicks; + + // Members for tracking the framerate. + uint32_t m_frameCount; + uint32_t m_framesPerSecond; + uint32_t m_framesThisSecond; + uint64_t m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64_t m_targetElapsedTicks; + }; +} diff --git a/Samples/System/NLSAndLocalizationUWP/de-DE/Resources.resw b/Samples/System/NLSAndLocalizationUWP/de-DE/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..5e1476b8597a8c26f5fbc2918b498f3fbfcdaa9d --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/de-DE/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (de-DE) + App Description + + + NLS And Localization (de-DE) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/en-GB/Resources.resw b/Samples/System/NLSAndLocalizationUWP/en-GB/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..ff853e5b045d62a35e83cc8925fbe8f4b926a5ce --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/en-GB/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (en-GB) + App Description + + + NLS And Localization (en-GB) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/en-US/Resources.resw b/Samples/System/NLSAndLocalizationUWP/en-US/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..29016bd815456c06cd476f6fdb6f11b22683a918 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/en-US/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (en-US) + App Description + + + NLS And Localization (en-US) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/en/Resources.resw b/Samples/System/NLSAndLocalizationUWP/en/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..b90ec96a2d00c8725445dca256b50195c832219b --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/en/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (en) + App Description + + + NLS And Localization (en) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/fr-FR/Resources.resw b/Samples/System/NLSAndLocalizationUWP/fr-FR/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..779ffea96c660590d76e75a7b14460871935786b --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/fr-FR/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (fr-FR) + App Description + + + NLS And Localization (fr-FR) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/fr/Resources.resw b/Samples/System/NLSAndLocalizationUWP/fr/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..e262e5d8dd426b99df8cdaf9cf25b6c95500f1fe --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/fr/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (fr) + App Description + + + NLS And Localization (fr) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/ja-JP/Resources.resw b/Samples/System/NLSAndLocalizationUWP/ja-JP/Resources.resw new file mode 100644 index 0000000000000000000000000000000000000000..3ca21dda59373460da0d91be9d31a26fe49f315a --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/ja-JP/Resources.resw @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sample for NLS APIs and localization (ja-JP) + App Description + + + NLS And Localization (ja-JP) + Name of the App + + \ No newline at end of file diff --git a/Samples/System/NLSAndLocalizationUWP/pch.cpp b/Samples/System/NLSAndLocalizationUWP/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..851c81be9b30ae3e8175fb950b95a1c9508580a3 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/pch.cpp @@ -0,0 +1,10 @@ +//-------------------------------------------------------------------------------------- +// pch.cpp +// +// Include the standard header and generate the precompiled header. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#include "pch.h" diff --git a/Samples/System/NLSAndLocalizationUWP/pch.h b/Samples/System/NLSAndLocalizationUWP/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..48671028204aa4f716e06aa0d8da8fca6f1b63b1 --- /dev/null +++ b/Samples/System/NLSAndLocalizationUWP/pch.h @@ -0,0 +1,71 @@ +//-------------------------------------------------------------------------------------- +// pch.h +// +// Header for standard system include files. +// +// Advanced Technology Group (ATG) +// Copyright (C) Microsoft Corporation. All rights reserved. +//-------------------------------------------------------------------------------------- + +#pragma once + +// Use the C++ standard templated min/max +#define NOMINMAX + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#ifdef _DEBUG +#include +#endif + +#include "GamePad.h" +#include "Keyboard.h" + +#include "TextConsole.h" +#include "ATGColors.h" +#include "DDSTextureLoader.h" +#include "ResourceParser.h" + +#include + +namespace DX +{ + // Helper class for COM exceptions + class com_exception : public std::exception + { + public: + com_exception(HRESULT hr) : result(hr) {} + + virtual const char* what() const override + { + static char s_str[64] = { 0 }; + sprintf_s(s_str, "Failure with HRESULT of %08X", result); + return s_str; + } + + private: + HRESULT result; + }; + + // Helper utility converts D3D API failures into exceptions. + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + throw com_exception(hr); + } + } +} \ No newline at end of file diff --git a/Samples/System/SimplePLM_UWP/DeviceResources.cpp b/Samples/System/SimplePLM_UWP/DeviceResources.cpp index 426421b77d683eb3be26ad6b7adeff239d5abc2d..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/SimplePLM_UWP/DeviceResources.cpp +++ b/Samples/System/SimplePLM_UWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -297,7 +296,7 @@ void DX::DeviceResources::CreateWindowSizeDependentResources() swapChainDesc.BufferCount = m_backBufferCount; swapChainDesc.SampleDesc.Count = 1; swapChainDesc.SampleDesc.Quality = 0; - swapChainDesc.Scaling = DXGI_SCALING_STRETCH; + swapChainDesc.Scaling = DXGI_SCALING_ASPECT_RATIO_STRETCH; swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/SimplePLM_UWP/Package.appxmanifest b/Samples/System/SimplePLM_UWP/Package.appxmanifest index cbc53d7586bcc1863dba15a3cdf15dc2456f06b1..fd99ec15b3c46b6bf149656fb0eef604cabcd606 100644 --- a/Samples/System/SimplePLM_UWP/Package.appxmanifest +++ b/Samples/System/SimplePLM_UWP/Package.appxmanifest @@ -1,10 +1,10 @@  - + SimplePLM - erwals + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/SimplePLM_UWP/SimplePLM.cpp b/Samples/System/SimplePLM_UWP/SimplePLM.cpp index 5cd0f32a4400bc94fb0ad179d2a8398347021a4d..bbcdab08510f9c0421ddbafb8d3bd29dcbe8105e 100644 --- a/Samples/System/SimplePLM_UWP/SimplePLM.cpp +++ b/Samples/System/SimplePLM_UWP/SimplePLM.cpp @@ -277,6 +277,8 @@ void Sample::CreateWindowSizeDependentResources() m_console->WriteLine(m_logCache.back()->Data()); m_logCache.pop_back(); } + + m_console->SetRotation(m_deviceResources->GetRotation()); } void Sample::OnDeviceLost() diff --git a/Samples/System/SimplePLM_UWP/SimplePLM.vcxproj b/Samples/System/SimplePLM_UWP/SimplePLM.vcxproj index 8fc4624a8db3826469aa5ae05d703a5d39a2acbd..d314cd113c414a74865ae3616ccf9c93b561cf0f 100644 --- a/Samples/System/SimplePLM_UWP/SimplePLM.vcxproj +++ b/Samples/System/SimplePLM_UWP/SimplePLM.vcxproj @@ -1,4 +1,4 @@ - + @@ -263,4 +263,4 @@ - + \ No newline at end of file diff --git a/Samples/System/SystemInfoUWP/DeviceResources.cpp b/Samples/System/SystemInfoUWP/DeviceResources.cpp index ba23c3af40f17d50564addcc12fe1337f018fa22..d549f8214804ee0c1ba2dad2af60c4fd9d6d91c3 100644 --- a/Samples/System/SystemInfoUWP/DeviceResources.cpp +++ b/Samples/System/SystemInfoUWP/DeviceResources.cpp @@ -212,8 +212,7 @@ void DX::DeviceResources::CreateDeviceResources() { D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS, }; - D3D11_INFO_QUEUE_FILTER filter; - memset(&filter, 0, sizeof(filter)); + D3D11_INFO_QUEUE_FILTER filter = {}; filter.DenyList.NumIDs = _countof(hide); filter.DenyList.pIDList = hide; d3dInfoQueue->AddStorageFilterEntries(&filter); @@ -581,7 +580,7 @@ void DX::DeviceResources::GetHardwareAdapter(IDXGIAdapter1** ppAdapter) } #ifdef _DEBUG - WCHAR buff[256] = {}; + wchar_t buff[256] = {}; swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description); OutputDebugStringW(buff); #endif diff --git a/Samples/System/SystemInfoUWP/Package.appxmanifest b/Samples/System/SystemInfoUWP/Package.appxmanifest index f119fa6f43d97e94c8cd49b9a9d598040cb19811..be6f9876e6531c58f85d239d608a14e752ad39fc 100644 --- a/Samples/System/SystemInfoUWP/Package.appxmanifest +++ b/Samples/System/SystemInfoUWP/Package.appxmanifest @@ -8,14 +8,14 @@ SystemInfo - chuckw + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/System/SystemInfoUWP/SystemInfo.vcxproj b/Samples/System/SystemInfoUWP/SystemInfo.vcxproj index 3bdf381de5fc349fd850700d5a83c929ea945978..569a242c79e111fb270d67438bbb26bf73636c16 100644 --- a/Samples/System/SystemInfoUWP/SystemInfo.vcxproj +++ b/Samples/System/SystemInfoUWP/SystemInfo.vcxproj @@ -1,4 +1,4 @@ - + @@ -264,4 +264,4 @@ - + \ No newline at end of file diff --git a/Samples/Tools/errorlookup/errorlookup/Package.appxmanifest b/Samples/Tools/errorlookup/errorlookup/Package.appxmanifest index afbdbd7d1ddc27f677b9b81d117655fda6fe0948..5d94a92c389a1b0bec8d9ca228a71c5a62994b8a 100644 --- a/Samples/Tools/errorlookup/errorlookup/Package.appxmanifest +++ b/Samples/Tools/errorlookup/errorlookup/Package.appxmanifest @@ -1,10 +1,10 @@  - + errorlookup - shammond + Xbox Advanced Technology Group Assets\StoreLogo.png diff --git a/Samples/Tools/errorlookup/errorlookup/errorlookup.csproj b/Samples/Tools/errorlookup/errorlookup/errorlookup.csproj index 463011f69ad86e3c74a84f3fbdf0e1d2ea65184e..f42f5757b65fe7a349954a580bd82ec159fa39df 100644 --- a/Samples/Tools/errorlookup/errorlookup/errorlookup.csproj +++ b/Samples/Tools/errorlookup/errorlookup/errorlookup.csproj @@ -1,4 +1,4 @@ - + @@ -150,4 +150,4 @@ --> - + \ No newline at end of file