diff --git a/browser/base/content/test/general/browser_bug553455.js b/browser/base/content/test/general/browser_bug553455.js index b9842a529892..50c84a1a6d89 100644 --- a/browser/base/content/test/general/browser_bug553455.js +++ b/browser/base/content/test/general/browser_bug553455.js @@ -9,7 +9,7 @@ const XPINSTALL_URL = "chrome://mozapps/content/xpinstall/xpinstallConfirm.xul"; const PREF_INSTALL_REQUIREBUILTINCERTS = "extensions.install.requireBuiltInCerts"; const PROGRESS_NOTIFICATION = "addon-progress"; -const { REQUIRE_SIGNING } = Cu.import("resource://gre/modules/addons/AddonConstants.jsm", {}); +Cu.import("resource://gre/modules/AppConstants.jsm"); var rootDir = getRootDirectory(gTestPath); var rootPath = rootDir.split("/"); @@ -38,97 +38,93 @@ function getObserverTopic(aNotificationId) { return topic; } -function waitForProgressNotification(aPanelOpen = false, aExpectedCount = 1) { - return (async function() { - let notificationId = PROGRESS_NOTIFICATION; - info("Waiting for " + notificationId + " notification"); +async function waitForProgressNotification(aPanelOpen = false, aExpectedCount = 1) { + let notificationId = PROGRESS_NOTIFICATION; + info("Waiting for " + notificationId + " notification"); - let topic = getObserverTopic(notificationId); + let topic = getObserverTopic(notificationId); - let observerPromise = new Promise(resolve => { - Services.obs.addObserver(function observer(aSubject, aTopic, aData) { - // Ignore the progress notification unless that is the notification we want - if (notificationId != PROGRESS_NOTIFICATION && - aTopic == getObserverTopic(PROGRESS_NOTIFICATION)) { - return; - } - Services.obs.removeObserver(observer, topic); + let observerPromise = new Promise(resolve => { + Services.obs.addObserver(function observer(aSubject, aTopic, aData) { + // Ignore the progress notification unless that is the notification we want + if (notificationId != PROGRESS_NOTIFICATION && + aTopic == getObserverTopic(PROGRESS_NOTIFICATION)) { + return; + } + Services.obs.removeObserver(observer, topic); + resolve(); + }, topic); + }); + + let panelEventPromise; + if (aPanelOpen) { + panelEventPromise = Promise.resolve(); + } else { + panelEventPromise = new Promise(resolve => { + PopupNotifications.panel.addEventListener("popupshowing", function() { resolve(); - }, topic); + }, {once: true}); }); + } - let panelEventPromise; - if (aPanelOpen) { - panelEventPromise = Promise.resolve(); - } else { - panelEventPromise = new Promise(resolve => { - PopupNotifications.panel.addEventListener("popupshowing", function() { - resolve(); - }, {once: true}); - }); - } + await observerPromise; + await panelEventPromise; - await observerPromise; - await panelEventPromise; + info("Saw a notification"); + ok(PopupNotifications.isPanelOpen, "Panel should be open"); + is(PopupNotifications.panel.childNodes.length, aExpectedCount, "Should be the right number of notifications"); + if (PopupNotifications.panel.childNodes.length) { + let nodes = Array.from(PopupNotifications.panel.childNodes); + let notification = nodes.find(n => n.id == notificationId + "-notification"); + ok(notification, `Should have seen the right notification`); + ok(notification.button.hasAttribute("disabled"), + "The install button should be disabled"); + } - info("Saw a notification"); - ok(PopupNotifications.isPanelOpen, "Panel should be open"); - is(PopupNotifications.panel.childNodes.length, aExpectedCount, "Should be the right number of notifications"); - if (PopupNotifications.panel.childNodes.length) { - let nodes = Array.from(PopupNotifications.panel.childNodes); - let notification = nodes.find(n => n.id == notificationId + "-notification"); - ok(notification, `Should have seen the right notification`); - ok(notification.button.hasAttribute("disabled"), - "The install button should be disabled"); - } - - return PopupNotifications.panel; - })(); + return PopupNotifications.panel; } -function waitForNotification(aId, aExpectedCount = 1) { - return (async function() { - info("Waiting for " + aId + " notification"); +async function waitForNotification(aId, aExpectedCount = 1) { + info("Waiting for " + aId + " notification"); - let topic = getObserverTopic(aId); + let topic = getObserverTopic(aId); - let observerPromise = new Promise(resolve => { - Services.obs.addObserver(function observer(aSubject, aTopic, aData) { - // Ignore the progress notification unless that is the notification we want - if (aId != PROGRESS_NOTIFICATION && - aTopic == getObserverTopic(PROGRESS_NOTIFICATION)) { - return; - } - Services.obs.removeObserver(observer, topic); - resolve(); - }, topic); + let observerPromise = new Promise(resolve => { + Services.obs.addObserver(function observer(aSubject, aTopic, aData) { + // Ignore the progress notification unless that is the notification we want + if (aId != PROGRESS_NOTIFICATION && + aTopic == getObserverTopic(PROGRESS_NOTIFICATION)) { + return; + } + Services.obs.removeObserver(observer, topic); + resolve(); + }, topic); + }); + + let panelEventPromise = new Promise(resolve => { + PopupNotifications.panel.addEventListener("PanelUpdated", function eventListener(e) { + // Skip notifications that are not the one that we are supposed to be looking for + if (e.detail.indexOf(aId) == -1) { + return; + } + PopupNotifications.panel.removeEventListener("PanelUpdated", eventListener); + resolve(); }); + }); - let panelEventPromise = new Promise(resolve => { - PopupNotifications.panel.addEventListener("PanelUpdated", function eventListener(e) { - // Skip notifications that are not the one that we are supposed to be looking for - if (e.detail.indexOf(aId) == -1) { - return; - } - PopupNotifications.panel.removeEventListener("PanelUpdated", eventListener); - resolve(); - }); - }); + await observerPromise; + await panelEventPromise; - await observerPromise; - await panelEventPromise; + info("Saw a " + aId + " notification"); + ok(PopupNotifications.isPanelOpen, "Panel should be open"); + is(PopupNotifications.panel.childNodes.length, aExpectedCount, "Should be the right number of notifications"); + if (PopupNotifications.panel.childNodes.length) { + let nodes = Array.from(PopupNotifications.panel.childNodes); + let notification = nodes.find(n => n.id == aId + "-notification"); + ok(notification, "Should have seen the " + aId + " notification"); + } - info("Saw a " + aId + " notification"); - ok(PopupNotifications.isPanelOpen, "Panel should be open"); - is(PopupNotifications.panel.childNodes.length, aExpectedCount, "Should be the right number of notifications"); - if (PopupNotifications.panel.childNodes.length) { - let nodes = Array.from(PopupNotifications.panel.childNodes); - let notification = nodes.find(n => n.id == aId + "-notification"); - ok(notification, "Should have seen the " + aId + " notification"); - } - - return PopupNotifications.panel; - })(); + return PopupNotifications.panel; } function waitForNotificationClose() { @@ -140,45 +136,43 @@ function waitForNotificationClose() { }); } -function waitForInstallDialog() { - return (async function() { - if (Preferences.get("xpinstall.customConfirmationUI", false)) { - let panel = await waitForNotification("addon-install-confirmation"); - return panel.childNodes[0]; - } +async function waitForInstallDialog() { + if (Preferences.get("xpinstall.customConfirmationUI", false)) { + let panel = await waitForNotification("addon-install-confirmation"); + return panel.childNodes[0]; + } - info("Waiting for install dialog"); + info("Waiting for install dialog"); - let window = await new Promise(resolve => { - Services.wm.addListener({ - onOpenWindow(aXULWindow) { - Services.wm.removeListener(this); - resolve(aXULWindow); - }, - onCloseWindow(aXULWindow) { - }, - onWindowTitleChange(aXULWindow, aNewTitle) { - } - }); + let window = await new Promise(resolve => { + Services.wm.addListener({ + onOpenWindow(aXULWindow) { + Services.wm.removeListener(this); + resolve(aXULWindow); + }, + onCloseWindow(aXULWindow) { + }, + onWindowTitleChange(aXULWindow, aNewTitle) { + } }); - info("Install dialog opened, waiting for focus"); + }); + info("Install dialog opened, waiting for focus"); - let domwindow = window.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDOMWindow); - await new Promise(resolve => { - waitForFocus(function() { - resolve(); - }, domwindow); - }); - info("Saw install dialog"); - is(domwindow.document.location.href, XPINSTALL_URL, "Should have seen the right window open"); + let domwindow = window.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIDOMWindow); + await new Promise(resolve => { + waitForFocus(function() { + resolve(); + }, domwindow); + }); + info("Saw install dialog"); + is(domwindow.document.location.href, XPINSTALL_URL, "Should have seen the right window open"); - // Override the countdown timer on the accept button - let button = domwindow.document.documentElement.getButton("accept"); - button.disabled = false; + // Override the countdown timer on the accept button + let button = domwindow.document.documentElement.getButton("accept"); + button.disabled = false; - return null; - })(); + return null; } function removeTab() { @@ -206,16 +200,14 @@ function cancelInstallDialog(installDialog) { } } -function waitForSingleNotification(aCallback) { - return (async function() { - while (PopupNotifications.panel.childNodes.length == 2) { - await new Promise(resolve => executeSoon(resolve)); +async function waitForSingleNotification(aCallback) { + while (PopupNotifications.panel.childNodes.length == 2) { + await new Promise(resolve => executeSoon(resolve)); - info("Waiting for single notification"); - // Notification should never close while we wait - ok(PopupNotifications.isPanelOpen, "Notification should still be open"); - } - })(); + info("Waiting for single notification"); + // Notification should never close while we wait + ok(PopupNotifications.isPanelOpen, "Notification should still be open"); + } } function setupRedirect(aSettings) { @@ -236,799 +228,757 @@ function getInstalls() { } var TESTS = [ -function test_disabledInstall() { - return (async function() { - Services.prefs.setBoolPref("xpinstall.enabled", false); +async function test_disabledInstall() { + Services.prefs.setBoolPref("xpinstall.enabled", false); - let notificationPromise = waitForNotification("xpinstall-disabled"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - let panel = await notificationPromise; + let notificationPromise = waitForNotification("xpinstall-disabled"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Enable", "Should have seen the right button"); - is(notification.getAttribute("label"), - "Software installation is currently disabled. Click Enable and try again."); + let notification = panel.childNodes[0]; + is(notification.button.label, "Enable", "Should have seen the right button"); + is(notification.getAttribute("label"), + "Software installation is currently disabled. Click Enable and try again."); - let closePromise = waitForNotificationClose(); - // Click on Enable - EventUtils.synthesizeMouseAtCenter(notification.button, {}); - await closePromise; + let closePromise = waitForNotificationClose(); + // Click on Enable + EventUtils.synthesizeMouseAtCenter(notification.button, {}); + await closePromise; - try { - ok(Services.prefs.getBoolPref("xpinstall.enabled"), "Installation should be enabled"); - } catch (e) { - ok(false, "xpinstall.enabled should be set"); - } + try { + ok(Services.prefs.getBoolPref("xpinstall.enabled"), "Installation should be enabled"); + } catch (e) { + ok(false, "xpinstall.enabled should be set"); + } - await BrowserTestUtils.removeTab(gBrowser.selectedTab); - let installs = await getInstalls(); - is(installs.length, 0, "Shouldn't be any pending installs"); - })(); + await BrowserTestUtils.removeTab(gBrowser.selectedTab); + let installs = await getInstalls(); + is(installs.length, 0, "Shouldn't be any pending installs"); }, -function test_blockedInstall() { - return (async function() { - let notificationPromise = waitForNotification("addon-install-blocked"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - let panel = await notificationPromise; +async function test_blockedInstall() { + let notificationPromise = waitForNotification("addon-install-blocked"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Allow", "Should have seen the right button"); - is(notification.getAttribute("origin"), "example.com", - "Should have seen the right origin host"); - is(notification.getAttribute("label"), - gApp + " prevented this site from asking you to install software on your computer.", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.button.label, "Allow", "Should have seen the right button"); + is(notification.getAttribute("origin"), "example.com", + "Should have seen the right origin host"); + is(notification.getAttribute("label"), + gApp + " prevented this site from asking you to install software on your computer.", + "Should have seen the right message"); - let dialogPromise = waitForInstallDialog(); - // Click on Allow - EventUtils.synthesizeMouse(notification.button, 20, 10, {}); - // Notification should have changed to progress notification - ok(PopupNotifications.isPanelOpen, "Notification should still be open"); - notification = panel.childNodes[0]; - is(notification.id, "addon-progress-notification", "Should have seen the progress notification"); - let installDialog = await dialogPromise; + let dialogPromise = waitForInstallDialog(); + // Click on Allow + EventUtils.synthesizeMouse(notification.button, 20, 10, {}); + // Notification should have changed to progress notification + ok(PopupNotifications.isPanelOpen, "Notification should still be open"); + notification = panel.childNodes[0]; + is(notification.id, "addon-progress-notification", "Should have seen the progress notification"); + let installDialog = await dialogPromise; - notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - panel = await notificationPromise; + notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + panel = await notificationPromise; - notification = panel.childNodes[0]; - is(notification.button.label, "Restart Now", "Should have seen the right button"); - is(notification.getAttribute("label"), - "XPI Test will be installed after you restart " + gApp + ".", - "Should have seen the right message"); + notification = panel.childNodes[0]; + is(notification.button.label, "Restart Now", "Should have seen the right button"); + is(notification.getAttribute("label"), + "XPI Test will be installed after you restart " + gApp + ".", + "Should have seen the right message"); - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending install"); - installs[0].cancel(); - await removeTab(); - })(); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending install"); + installs[0].cancel(); + await removeTab(); }, -function test_whitelistedInstall() { - return (async function() { - let originalTab = gBrowser.selectedTab; - let tab; - gBrowser.selectedTab = originalTab; - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_whitelistedInstall() { + let originalTab = gBrowser.selectedTab; + let tab; + gBrowser.selectedTab = originalTab; + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" - + triggers).then(newTab => tab = newTab); - await progressPromise; - let installDialog = await dialogPromise; - await BrowserTestUtils.waitForCondition(() => !!tab, "tab should be present"); + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + + triggers).then(newTab => tab = newTab); + await progressPromise; + let installDialog = await dialogPromise; + await BrowserTestUtils.waitForCondition(() => !!tab, "tab should be present"); - is(gBrowser.selectedTab, tab, - "tab selected in response to the addon-install-confirmation notification"); + is(gBrowser.selectedTab, tab, + "tab selected in response to the addon-install-confirmation notification"); - let notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - let panel = await notificationPromise; + let notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Restart Now", "Should have seen the right button"); - is(notification.getAttribute("label"), - "XPI Test will be installed after you restart " + gApp + ".", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.button.label, "Restart Now", "Should have seen the right button"); + is(notification.getAttribute("label"), + "XPI Test will be installed after you restart " + gApp + ".", + "Should have seen the right message"); - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending install"); - installs[0].cancel(); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending install"); + installs[0].cancel(); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_failedDownload() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_failedDownload() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let failPromise = waitForNotification("addon-install-failed"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "missing.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let panel = await failPromise; + let progressPromise = waitForProgressNotification(); + let failPromise = waitForNotification("addon-install-failed"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "missing.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let panel = await failPromise; - let notification = panel.childNodes[0]; - is(notification.getAttribute("label"), - "The add-on could not be downloaded because of a connection failure.", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.getAttribute("label"), + "The add-on could not be downloaded because of a connection failure.", + "Should have seen the right message"); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_corruptFile() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_corruptFile() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let failPromise = waitForNotification("addon-install-failed"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "corrupt.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let panel = await failPromise; + let progressPromise = waitForProgressNotification(); + let failPromise = waitForNotification("addon-install-failed"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "corrupt.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let panel = await failPromise; - let notification = panel.childNodes[0]; - is(notification.getAttribute("label"), - "The add-on downloaded from this site could not be installed " + - "because it appears to be corrupt.", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.getAttribute("label"), + "The add-on downloaded from this site could not be installed " + + "because it appears to be corrupt.", + "Should have seen the right message"); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_incompatible() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_incompatible() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let failPromise = waitForNotification("addon-install-failed"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "incompatible.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let panel = await failPromise; + let progressPromise = waitForProgressNotification(); + let failPromise = waitForNotification("addon-install-failed"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "incompatible.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let panel = await failPromise; - let notification = panel.childNodes[0]; - is(notification.getAttribute("label"), - "XPI Test could not be installed because it is not compatible with " + - gApp + " " + gVersion + ".", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.getAttribute("label"), + "XPI Test could not be installed because it is not compatible with " + + gApp + " " + gVersion + ".", + "Should have seen the right message"); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_restartless() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_restartless() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "restartless.xpi" - })); - gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); - gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let installDialog = await dialogPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "restartless.xpi" + })); + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); + gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let installDialog = await dialogPromise; - let notificationPromise = waitForNotification("addon-installed"); - acceptInstallDialog(installDialog); - await notificationPromise; + let notificationPromise = waitForNotification("addon-installed"); + acceptInstallDialog(installDialog); + await notificationPromise; - let installs = await getInstalls(); - is(installs.length, 0, "Should be no pending installs"); + let installs = await getInstalls(); + is(installs.length, 0, "Should be no pending installs"); - let addon = await new Promise(resolve => { - AddonManager.getAddonByID("restartless-xpi@tests.mozilla.org", result => { - resolve(result); - }); + let addon = await new Promise(resolve => { + AddonManager.getAddonByID("restartless-xpi@tests.mozilla.org", result => { + resolve(result); }); - addon.uninstall(); + }); + addon.uninstall(); - Services.perms.remove(makeURI("http://example.com/"), "install"); + Services.perms.remove(makeURI("http://example.com/"), "install"); - let closePromise = waitForNotificationClose(); - gBrowser.removeTab(gBrowser.selectedTab); - await closePromise; - })(); + let closePromise = waitForNotificationClose(); + gBrowser.removeTab(gBrowser.selectedTab); + await closePromise; }, -function test_sequential() { - return (async function() { - // This test is only relevant if using the new doorhanger UI - // TODO: this subtest is disabled until multiple notification prompts are - // reworked in bug 1188152 - if (true || !Preferences.get("xpinstall.customConfirmationUI", false)) { - return; - } - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_sequential() { + // This test is only relevant if using the new doorhanger UI + // TODO: this subtest is disabled until multiple notification prompts are + // reworked in bug 1188152 + if (true || !Preferences.get("xpinstall.customConfirmationUI", false)) { + return; + } + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "Restartless XPI": "restartless.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let installDialog = await dialogPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "Restartless XPI": "restartless.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let installDialog = await dialogPromise; - // Should see the right add-on - let container = document.getElementById("addon-install-confirmation-content"); - is(container.childNodes.length, 1, "Should be one item listed"); - is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); + // Should see the right add-on + let container = document.getElementById("addon-install-confirmation-content"); + is(container.childNodes.length, 1, "Should be one item listed"); + is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); - progressPromise = waitForProgressNotification(true, 2); - triggers = encodeURIComponent(JSON.stringify({ - "Theme XPI": "theme.xpi" - })); - gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; + progressPromise = waitForProgressNotification(true, 2); + triggers = encodeURIComponent(JSON.stringify({ + "Theme XPI": "theme.xpi" + })); + gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; - // Should still have the right add-on in the confirmation notification - is(container.childNodes.length, 1, "Should be one item listed"); - is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); + // Should still have the right add-on in the confirmation notification + is(container.childNodes.length, 1, "Should be one item listed"); + is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); - // Wait for the install to complete, we won't see a new confirmation - // notification - await new Promise(resolve => { - Services.obs.addObserver(function observer() { - Services.obs.removeObserver(observer, "addon-install-confirmation"); - resolve(); - }, "addon-install-confirmation"); + // Wait for the install to complete, we won't see a new confirmation + // notification + await new Promise(resolve => { + Services.obs.addObserver(function observer() { + Services.obs.removeObserver(observer, "addon-install-confirmation"); + resolve(); + }, "addon-install-confirmation"); + }); + + // Make sure browser-addons.js executes first + await new Promise(resolve => executeSoon(resolve)); + + // Should have dropped the progress notification + is(PopupNotifications.panel.childNodes.length, 1, "Should be the right number of notifications"); + is(PopupNotifications.panel.childNodes[0].id, "addon-install-confirmation-notification", + "Should only be showing one install confirmation"); + + // Should still have the right add-on in the confirmation notification + is(container.childNodes.length, 1, "Should be one item listed"); + is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); + + cancelInstallDialog(installDialog); + + ok(PopupNotifications.isPanelOpen, "Panel should still be open"); + is(PopupNotifications.panel.childNodes.length, 1, "Should be the right number of notifications"); + is(PopupNotifications.panel.childNodes[0].id, "addon-install-confirmation-notification", + "Should still have an install confirmation open"); + + // Should have the next add-on's confirmation dialog + is(container.childNodes.length, 1, "Should be one item listed"); + is(container.childNodes[0].firstChild.getAttribute("value"), "Theme Test", "Should have the right add-on"); + + Services.perms.remove(makeURI("http://example.com"), "install"); + let closePromise = waitForNotificationClose(); + cancelInstallDialog(installDialog); + await closePromise; + await BrowserTestUtils.removeTab(gBrowser.selectedTab); +}, + +async function test_allUnverified() { + // This test is only relevant if using the new doorhanger UI and allowing + // unsigned add-ons + if (!Preferences.get("xpinstall.customConfirmationUI", false) || + Preferences.get("xpinstall.signatures.required", true) || + AppConstants.MOZ_REQUIRE_SIGNING) { + return; + } + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); + + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "Extension XPI": "restartless-unsigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let installDialog = await dialogPromise; + + let notification = document.getElementById("addon-install-confirmation-notification"); + let message = notification.getAttribute("label"); + is(message, "Caution: This site would like to install an unverified add-on in " + gApp + ". Proceed at your own risk."); + + let container = document.getElementById("addon-install-confirmation-content"); + is(container.childNodes.length, 1, "Should be one item listed"); + is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); + is(container.childNodes[0].childNodes.length, 1, "Shouldn't have the unverified marker"); + + let notificationPromise = waitForNotification("addon-installed"); + acceptInstallDialog(installDialog); + await notificationPromise; + + let addon = await new Promise(resolve => { + AddonManager.getAddonByID("restartless-xpi@tests.mozilla.org", function(result) { + resolve(result); }); + }); + addon.uninstall(); - // Make sure browser-addons.js executes first - await new Promise(resolve => executeSoon(resolve)); - - // Should have dropped the progress notification - is(PopupNotifications.panel.childNodes.length, 1, "Should be the right number of notifications"); - is(PopupNotifications.panel.childNodes[0].id, "addon-install-confirmation-notification", - "Should only be showing one install confirmation"); - - // Should still have the right add-on in the confirmation notification - is(container.childNodes.length, 1, "Should be one item listed"); - is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); - - cancelInstallDialog(installDialog); - - ok(PopupNotifications.isPanelOpen, "Panel should still be open"); - is(PopupNotifications.panel.childNodes.length, 1, "Should be the right number of notifications"); - is(PopupNotifications.panel.childNodes[0].id, "addon-install-confirmation-notification", - "Should still have an install confirmation open"); - - // Should have the next add-on's confirmation dialog - is(container.childNodes.length, 1, "Should be one item listed"); - is(container.childNodes[0].firstChild.getAttribute("value"), "Theme Test", "Should have the right add-on"); - - Services.perms.remove(makeURI("http://example.com"), "install"); - let closePromise = waitForNotificationClose(); - cancelInstallDialog(installDialog); - await closePromise; - await BrowserTestUtils.removeTab(gBrowser.selectedTab); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_allUnverified() { - return (async function() { - // This test is only relevant if using the new doorhanger UI and allowing - // unsigned add-ons - if (!Preferences.get("xpinstall.customConfirmationUI", false) || - Preferences.get("xpinstall.signatures.required", true) || - REQUIRE_SIGNING) { - return; - } - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_url() { + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); + await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + gBrowser.loadURI(TESTROOT + "amosigned.xpi"); + await progressPromise; + let installDialog = await dialogPromise; - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "Extension XPI": "restartless-unsigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let installDialog = await dialogPromise; + let notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + let panel = await notificationPromise; - let notification = document.getElementById("addon-install-confirmation-notification"); - let message = notification.getAttribute("label"); - is(message, "Caution: This site would like to install an unverified add-on in " + gApp + ". Proceed at your own risk."); + let notification = panel.childNodes[0]; + is(notification.button.label, "Restart Now", "Should have seen the right button"); + is(notification.getAttribute("label"), + "XPI Test will be installed after you restart " + gApp + ".", + "Should have seen the right message"); - let container = document.getElementById("addon-install-confirmation-content"); - is(container.childNodes.length, 1, "Should be one item listed"); - is(container.childNodes[0].firstChild.getAttribute("value"), "XPI Test", "Should have the right add-on"); - is(container.childNodes[0].childNodes.length, 1, "Shouldn't have the unverified marker"); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending install"); + installs[0].cancel(); - let notificationPromise = waitForNotification("addon-installed"); - acceptInstallDialog(installDialog); - await notificationPromise; - - let addon = await new Promise(resolve => { - AddonManager.getAddonByID("restartless-xpi@tests.mozilla.org", function(result) { - resolve(result); - }); - }); - addon.uninstall(); - - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + await removeTab(); }, -function test_url() { - return (async function() { - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); - await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); - gBrowser.loadURI(TESTROOT + "amosigned.xpi"); - await progressPromise; - let installDialog = await dialogPromise; +async function test_localFile() { + let cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] + .getService(Components.interfaces.nsIChromeRegistry); + let path; + try { + path = cr.convertChromeURL(makeURI(CHROMEROOT + "corrupt.xpi")).spec; + } catch (ex) { + path = CHROMEROOT + "corrupt.xpi"; + } - let notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - let panel = await notificationPromise; + let failPromise = new Promise(resolve => { + Services.obs.addObserver(function observer() { + Services.obs.removeObserver(observer, "addon-install-failed"); + resolve(); + }, "addon-install-failed"); + }); + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); + await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + gBrowser.loadURI(path); + await failPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Restart Now", "Should have seen the right button"); - is(notification.getAttribute("label"), - "XPI Test will be installed after you restart " + gApp + ".", - "Should have seen the right message"); + // Wait for the browser code to add the failure notification + await waitForSingleNotification(); - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending install"); - installs[0].cancel(); + let notification = PopupNotifications.panel.childNodes[0]; + is(notification.id, "addon-install-failed-notification", "Should have seen the install fail"); + is(notification.getAttribute("label"), + "This add-on could not be installed because it appears to be corrupt.", + "Should have seen the right message"); - await removeTab(); - })(); + await removeTab(); }, -function test_localFile() { - return (async function() { - let cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] - .getService(Components.interfaces.nsIChromeRegistry); - let path; - try { - path = cr.convertChromeURL(makeURI(CHROMEROOT + "corrupt.xpi")).spec; - } catch (ex) { - path = CHROMEROOT + "corrupt.xpi"; - } +async function test_tabClose() { + if (!Preferences.get("xpinstall.customConfirmationUI", false)) { + info("Test skipped due to xpinstall.customConfirmationUI being false."); + return; + } - let failPromise = new Promise(resolve => { - Services.obs.addObserver(function observer() { - Services.obs.removeObserver(observer, "addon-install-failed"); - resolve(); - }, "addon-install-failed"); - }); - gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); - await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); - gBrowser.loadURI(path); - await failPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); + await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + gBrowser.loadURI(TESTROOT + "amosigned.xpi"); + await progressPromise; + await dialogPromise; - // Wait for the browser code to add the failure notification - await waitForSingleNotification(); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending install"); - let notification = PopupNotifications.panel.childNodes[0]; - is(notification.id, "addon-install-failed-notification", "Should have seen the install fail"); - is(notification.getAttribute("label"), - "This add-on could not be installed because it appears to be corrupt.", - "Should have seen the right message"); + let closePromise = waitForNotificationClose(); + await BrowserTestUtils.removeTab(gBrowser.selectedTab); + await closePromise; - await removeTab(); - })(); -}, - -function test_tabClose() { - return (async function() { - if (!Preferences.get("xpinstall.customConfirmationUI", false)) { - info("Test skipped due to xpinstall.customConfirmationUI being false."); - return; - } - - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); - await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); - gBrowser.loadURI(TESTROOT + "amosigned.xpi"); - await progressPromise; - await dialogPromise; - - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending install"); - - let closePromise = waitForNotificationClose(); - await BrowserTestUtils.removeTab(gBrowser.selectedTab); - await closePromise; - - installs = await getInstalls(); - is(installs.length, 0, "Should be no pending install since the tab is closed"); - })(); + installs = await getInstalls(); + is(installs.length, 0, "Should be no pending install since the tab is closed"); }, // Add-ons should be cancelled and the install notification destroyed when // navigating to a new origin -function test_tabNavigate() { - return (async function() { - if (!Preferences.get("xpinstall.customConfirmationUI", false)) { - return; - } - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_tabNavigate() { + if (!Preferences.get("xpinstall.customConfirmationUI", false)) { + return; + } + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "Extension XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - await dialogPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "Extension XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + await dialogPromise; - let closePromise = waitForNotificationClose(); - let loadPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); - gBrowser.loadURI("about:blank"); - await closePromise; + let closePromise = waitForNotificationClose(); + let loadPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + gBrowser.loadURI("about:blank"); + await closePromise; - let installs = await getInstalls(); - is(installs.length, 0, "Should be no pending install"); + let installs = await getInstalls(); + is(installs.length, 0, "Should be no pending install"); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await loadPromise; - await BrowserTestUtils.removeTab(gBrowser.selectedTab); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await loadPromise; + await BrowserTestUtils.removeTab(gBrowser.selectedTab); }, -function test_urlBar() { - return (async function() { - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); +async function test_urlBar() { + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); - gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); - await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); - gURLBar.value = TESTROOT + "amosigned.xpi"; - gURLBar.focus(); - EventUtils.synthesizeKey("VK_RETURN", {}); + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank"); + await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); + gURLBar.value = TESTROOT + "amosigned.xpi"; + gURLBar.focus(); + EventUtils.synthesizeKey("VK_RETURN", {}); - await progressPromise; - let installDialog = await dialogPromise; + await progressPromise; + let installDialog = await dialogPromise; - let notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - let panel = await notificationPromise; + let notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Restart Now", "Should have seen the right button"); - is(notification.getAttribute("label"), - "XPI Test will be installed after you restart " + gApp + ".", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.button.label, "Restart Now", "Should have seen the right button"); + is(notification.getAttribute("label"), + "XPI Test will be installed after you restart " + gApp + ".", + "Should have seen the right message"); - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending install"); - installs[0].cancel(); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending install"); + installs[0].cancel(); - await removeTab(); - })(); + await removeTab(); }, -function test_wrongHost() { - return (async function() { - let requestedUrl = TESTROOT2 + "enabled.html"; - gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); +async function test_wrongHost() { + let requestedUrl = TESTROOT2 + "enabled.html"; + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); - let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, requestedUrl); - gBrowser.loadURI(TESTROOT2 + "enabled.html"); - await loadedPromise; + let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, requestedUrl); + gBrowser.loadURI(TESTROOT2 + "enabled.html"); + await loadedPromise; - let progressPromise = waitForProgressNotification(); - let notificationPromise = waitForNotification("addon-install-failed"); - gBrowser.loadURI(TESTROOT + "corrupt.xpi"); - await progressPromise; - let panel = await notificationPromise; + let progressPromise = waitForProgressNotification(); + let notificationPromise = waitForNotification("addon-install-failed"); + gBrowser.loadURI(TESTROOT + "corrupt.xpi"); + await progressPromise; + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.getAttribute("label"), - "The add-on downloaded from this site could not be installed " + - "because it appears to be corrupt.", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.getAttribute("label"), + "The add-on downloaded from this site could not be installed " + + "because it appears to be corrupt.", + "Should have seen the right message"); - await removeTab(); - })(); + await removeTab(); }, -function test_reload() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_reload() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "Unsigned XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let installDialog = await dialogPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "Unsigned XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let installDialog = await dialogPromise; - let notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - let panel = await notificationPromise; + let notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Restart Now", "Should have seen the right button"); - is(notification.getAttribute("label"), - "XPI Test will be installed after you restart " + gApp + ".", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.button.label, "Restart Now", "Should have seen the right button"); + is(notification.getAttribute("label"), + "XPI Test will be installed after you restart " + gApp + ".", + "Should have seen the right message"); - function testFail() { - ok(false, "Reloading should not have hidden the notification"); - } - PopupNotifications.panel.addEventListener("popuphiding", testFail); - let requestedUrl = TESTROOT2 + "enabled.html"; - let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, requestedUrl); - gBrowser.loadURI(TESTROOT2 + "enabled.html"); - await loadedPromise; - PopupNotifications.panel.removeEventListener("popuphiding", testFail); + function testFail() { + ok(false, "Reloading should not have hidden the notification"); + } + PopupNotifications.panel.addEventListener("popuphiding", testFail); + let requestedUrl = TESTROOT2 + "enabled.html"; + let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, requestedUrl); + gBrowser.loadURI(TESTROOT2 + "enabled.html"); + await loadedPromise; + PopupNotifications.panel.removeEventListener("popuphiding", testFail); - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending install"); - installs[0].cancel(); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending install"); + installs[0].cancel(); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_theme() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_theme() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "Theme XPI": "theme.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let installDialog = await dialogPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "Theme XPI": "theme.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let installDialog = await dialogPromise; - let notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - let panel = await notificationPromise; + let notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - is(notification.button.label, "Restart Now", "Should have seen the right button"); - is(notification.getAttribute("label"), - "Theme Test will be installed after you restart " + gApp + ".", - "Should have seen the right message"); + let notification = panel.childNodes[0]; + is(notification.button.label, "Restart Now", "Should have seen the right button"); + is(notification.getAttribute("label"), + "Theme Test will be installed after you restart " + gApp + ".", + "Should have seen the right message"); - let addon = await new Promise(resolve => { - AddonManager.getAddonByID("{972ce4c6-7e08-4474-a285-3208198ce6fd}", function(result) { - resolve(result); - }); + let addon = await new Promise(resolve => { + AddonManager.getAddonByID("{972ce4c6-7e08-4474-a285-3208198ce6fd}", function(result) { + resolve(result); }); - ok(addon.userDisabled, "Should be switching away from the default theme."); - // Undo the pending theme switch - addon.userDisabled = false; + }); + ok(addon.userDisabled, "Should be switching away from the default theme."); + // Undo the pending theme switch + addon.userDisabled = false; - addon = await new Promise(resolve => { - AddonManager.getAddonByID("theme-xpi@tests.mozilla.org", function(result) { - resolve(result); - }); + addon = await new Promise(resolve => { + AddonManager.getAddonByID("theme-xpi@tests.mozilla.org", function(result) { + resolve(result); }); - isnot(addon, null, "Test theme will have been installed"); - addon.uninstall(); + }); + isnot(addon, null, "Test theme will have been installed"); + addon.uninstall(); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_renotifyBlocked() { - return (async function() { - let notificationPromise = waitForNotification("addon-install-blocked"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - let panel = await notificationPromise; +async function test_renotifyBlocked() { + let notificationPromise = waitForNotification("addon-install-blocked"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + let panel = await notificationPromise; - let closePromise = waitForNotificationClose(); - // hide the panel (this simulates the user dismissing it) - panel.hidePopup(); - await closePromise; + let closePromise = waitForNotificationClose(); + // hide the panel (this simulates the user dismissing it) + panel.hidePopup(); + await closePromise; - info("Timeouts after this probably mean bug 589954 regressed"); + info("Timeouts after this probably mean bug 589954 regressed"); - await new Promise(resolve => executeSoon(resolve)); + await new Promise(resolve => executeSoon(resolve)); - notificationPromise = waitForNotification("addon-install-blocked"); - gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); - await notificationPromise; + notificationPromise = waitForNotification("addon-install-blocked"); + gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); + await notificationPromise; - let installs = await getInstalls(); - is(installs.length, 2, "Should be two pending installs"); + let installs = await getInstalls(); + is(installs.length, 2, "Should be two pending installs"); - closePromise = waitForNotificationClose(); - await BrowserTestUtils.removeTab(gBrowser.selectedTab); - await closePromise; + closePromise = waitForNotificationClose(); + await BrowserTestUtils.removeTab(gBrowser.selectedTab); + await closePromise; - installs = await getInstalls(); - is(installs.length, 0, "Should have cancelled the installs"); - })(); + installs = await getInstalls(); + is(installs.length, 0, "Should have cancelled the installs"); }, -function test_renotifyInstalled() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_renotifyInstalled() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let progressPromise = waitForProgressNotification(); - let dialogPromise = waitForInstallDialog(); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - let installDialog = await dialogPromise; + let progressPromise = waitForProgressNotification(); + let dialogPromise = waitForInstallDialog(); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + let installDialog = await dialogPromise; - // Wait for the complete notification - let notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - let panel = await notificationPromise; + // Wait for the complete notification + let notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + let panel = await notificationPromise; - let closePromise = waitForNotificationClose(); - // hide the panel (this simulates the user dismissing it) - panel.hidePopup(); - await closePromise; + let closePromise = waitForNotificationClose(); + // hide the panel (this simulates the user dismissing it) + panel.hidePopup(); + await closePromise; - // Install another - await new Promise(resolve => executeSoon(resolve)); + // Install another + await new Promise(resolve => executeSoon(resolve)); - progressPromise = waitForProgressNotification(); - dialogPromise = waitForInstallDialog(); - gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); - await progressPromise; - installDialog = await dialogPromise; + progressPromise = waitForProgressNotification(); + dialogPromise = waitForInstallDialog(); + gBrowser.loadURI(TESTROOT + "installtrigger.html?" + triggers); + await progressPromise; + installDialog = await dialogPromise; - info("Timeouts after this probably mean bug 589954 regressed"); + info("Timeouts after this probably mean bug 589954 regressed"); - // Wait for the complete notification - notificationPromise = waitForNotification("addon-install-restart"); - acceptInstallDialog(installDialog); - await notificationPromise; + // Wait for the complete notification + notificationPromise = waitForNotification("addon-install-restart"); + acceptInstallDialog(installDialog); + await notificationPromise; - let installs = await getInstalls(); - is(installs.length, 1, "Should be one pending installs"); - installs[0].cancel(); + let installs = await getInstalls(); + is(installs.length, 1, "Should be one pending installs"); + installs[0].cancel(); - Services.perms.remove(makeURI("http://example.com/"), "install"); - await removeTab(); - })(); + Services.perms.remove(makeURI("http://example.com/"), "install"); + await removeTab(); }, -function test_cancel() { - return (async function() { - let pm = Services.perms; - pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); +async function test_cancel() { + let pm = Services.perms; + pm.add(makeURI("http://example.com/"), "install", pm.ALLOW_ACTION); - let notificationPromise = waitForNotification(PROGRESS_NOTIFICATION); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "slowinstall.sjs?file=amosigned.xpi" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); - let panel = await notificationPromise; + let notificationPromise = waitForNotification(PROGRESS_NOTIFICATION); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "slowinstall.sjs?file=amosigned.xpi" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, TESTROOT + "installtrigger.html?" + triggers); + let panel = await notificationPromise; - let notification = panel.childNodes[0]; - // Close the notification - let anchor = document.getElementById("addons-notification-icon"); - anchor.click(); - // Reopen the notification - anchor.click(); + let notification = panel.childNodes[0]; + // Close the notification + let anchor = document.getElementById("addons-notification-icon"); + anchor.click(); + // Reopen the notification + anchor.click(); - ok(PopupNotifications.isPanelOpen, "Notification should still be open"); - is(PopupNotifications.panel.childNodes.length, 1, "Should be only one notification"); - notification = panel.childNodes[0]; - is(notification.id, "addon-progress-notification", "Should have seen the progress notification"); + ok(PopupNotifications.isPanelOpen, "Notification should still be open"); + is(PopupNotifications.panel.childNodes.length, 1, "Should be only one notification"); + notification = panel.childNodes[0]; + is(notification.id, "addon-progress-notification", "Should have seen the progress notification"); - // Cancel the download - let install = notification.notification.options.installs[0]; - let cancelledPromise = new Promise(resolve => { - install.addListener({ - onDownloadCancelled() { - install.removeListener(this); - resolve(); - } - }); - }); - EventUtils.synthesizeMouseAtCenter(notification.secondaryButton, {}); - await cancelledPromise; - - await new Promise(resolve => executeSoon(resolve)); - - ok(!PopupNotifications.isPanelOpen, "Notification should be closed"); - - let installs = await getInstalls(); - is(installs.length, 0, "Should be no pending install"); - - Services.perms.remove(makeURI("http://example.com/"), "install"); - await BrowserTestUtils.removeTab(gBrowser.selectedTab); - })(); -}, - -function test_failedSecurity() { - return (async function() { - Services.prefs.setBoolPref(PREF_INSTALL_REQUIREBUILTINCERTS, false); - setupRedirect({ - "Location": TESTROOT + "amosigned.xpi" - }); - - let notificationPromise = waitForNotification("addon-install-blocked"); - let triggers = encodeURIComponent(JSON.stringify({ - "XPI": "redirect.sjs?mode=redirect" - })); - BrowserTestUtils.openNewForegroundTab(gBrowser, SECUREROOT + "installtrigger.html?" + triggers); - let panel = await notificationPromise; - - let notification = panel.childNodes[0]; - // Click on Allow - EventUtils.synthesizeMouse(notification.button, 20, 10, {}); - - // Notification should have changed to progress notification - ok(PopupNotifications.isPanelOpen, "Notification should still be open"); - is(PopupNotifications.panel.childNodes.length, 1, "Should be only one notification"); - notification = panel.childNodes[0]; - is(notification.id, "addon-progress-notification", "Should have seen the progress notification"); - - // Wait for it to fail - await new Promise(resolve => { - Services.obs.addObserver(function observer() { - Services.obs.removeObserver(observer, "addon-install-failed"); + // Cancel the download + let install = notification.notification.options.installs[0]; + let cancelledPromise = new Promise(resolve => { + install.addListener({ + onDownloadCancelled() { + install.removeListener(this); resolve(); - }, "addon-install-failed"); + } }); + }); + EventUtils.synthesizeMouseAtCenter(notification.secondaryButton, {}); + await cancelledPromise; - // Allow the browser code to add the failure notification and then wait - // for the progress notification to dismiss itself - await waitForSingleNotification(); - is(PopupNotifications.panel.childNodes.length, 1, "Should be only one notification"); - notification = panel.childNodes[0]; - is(notification.id, "addon-install-failed-notification", "Should have seen the install fail"); + await new Promise(resolve => executeSoon(resolve)); - Services.prefs.setBoolPref(PREF_INSTALL_REQUIREBUILTINCERTS, true); - await removeTab(); - })(); + ok(!PopupNotifications.isPanelOpen, "Notification should be closed"); + + let installs = await getInstalls(); + is(installs.length, 0, "Should be no pending install"); + + Services.perms.remove(makeURI("http://example.com/"), "install"); + await BrowserTestUtils.removeTab(gBrowser.selectedTab); +}, + +async function test_failedSecurity() { + Services.prefs.setBoolPref(PREF_INSTALL_REQUIREBUILTINCERTS, false); + setupRedirect({ + "Location": TESTROOT + "amosigned.xpi" + }); + + let notificationPromise = waitForNotification("addon-install-blocked"); + let triggers = encodeURIComponent(JSON.stringify({ + "XPI": "redirect.sjs?mode=redirect" + })); + BrowserTestUtils.openNewForegroundTab(gBrowser, SECUREROOT + "installtrigger.html?" + triggers); + let panel = await notificationPromise; + + let notification = panel.childNodes[0]; + // Click on Allow + EventUtils.synthesizeMouse(notification.button, 20, 10, {}); + + // Notification should have changed to progress notification + ok(PopupNotifications.isPanelOpen, "Notification should still be open"); + is(PopupNotifications.panel.childNodes.length, 1, "Should be only one notification"); + notification = panel.childNodes[0]; + is(notification.id, "addon-progress-notification", "Should have seen the progress notification"); + + // Wait for it to fail + await new Promise(resolve => { + Services.obs.addObserver(function observer() { + Services.obs.removeObserver(observer, "addon-install-failed"); + resolve(); + }, "addon-install-failed"); + }); + + // Allow the browser code to add the failure notification and then wait + // for the progress notification to dismiss itself + await waitForSingleNotification(); + is(PopupNotifications.panel.childNodes.length, 1, "Should be only one notification"); + notification = panel.childNodes[0]; + is(notification.id, "addon-install-failed-notification", "Should have seen the install fail"); + + Services.prefs.setBoolPref(PREF_INSTALL_REQUIREBUILTINCERTS, true); + await removeTab(); } ]; diff --git a/devtools/client/shared/components/search-box.js b/devtools/client/shared/components/search-box.js index 3e085707aaf8..d10514fc08a9 100644 --- a/devtools/client/shared/components/search-box.js +++ b/devtools/client/shared/components/search-box.js @@ -149,6 +149,8 @@ module.exports = createClass({ let { value } = this.state; let divClassList = ["devtools-searchbox", "has-clear-btn"]; let inputClassList = [`devtools-${type}input`]; + let showAutocomplete = + autocompleteList.length > 0 && this.state.focused && value !== ""; if (value !== "") { inputClassList.push("filled"); @@ -170,8 +172,7 @@ module.exports = createClass({ hidden: value == "", onClick: this.onClearButtonClick }), - autocompleteList.length > 0 && this.state.focused && - AutocompletePopup({ + showAutocomplete && AutocompletePopup({ list: autocompleteList, filter: value, ref: "autocomplete", diff --git a/devtools/client/shared/components/test/mochitest/test_searchbox-with-autocomplete.html b/devtools/client/shared/components/test/mochitest/test_searchbox-with-autocomplete.html index 5a4e3a14d8ee..406dfd2405d6 100644 --- a/devtools/client/shared/components/test/mochitest/test_searchbox-with-autocomplete.html +++ b/devtools/client/shared/components/test/mochitest/test_searchbox-with-autocomplete.html @@ -51,6 +51,11 @@ window.onload = async function () { "pqr", "xyz", "ABC", + "a1", + "a2", + "a3", + "a4", + "a5", ], onChange: () => null, }); @@ -61,15 +66,19 @@ window.onload = async function () { $(".devtools-searchinput").focus(); await forceRender(component); // Wait for state update + ok(!$(".devtools-autocomplete-popup"), "Autocomplete list not visible"); + + sendString("a"); + await forceRender(component); compareAutocompleteList($(".devtools-autocomplete-listbox"), [ "ABC", - "BAR", + "a1", + "a2", + "a3", + "a4", + "a5", "abc", - "baZ", - "foo", - "pqr", - "xyz", ]); is(refs.autocomplete.state.selectedIndex, -1, "Initialised selectedIndex is -1"); @@ -82,16 +91,8 @@ window.onload = async function () { } async function testKeyEventsWithAutocomplete() { - // Filtering of list - $(".devtools-searchinput").focus(); - await forceRender(component); - sendString("aB"); - await forceRender(component); - compareAutocompleteList($(".devtools-autocomplete-listbox"), ["ABC", "abc"]); - // Clear the initial input - synthesizeKey("VK_BACK_SPACE", {}); - synthesizeKey("VK_BACK_SPACE", {}); + $(".devtools-searchinput").focus(); // ArrowDown synthesizeKey("VK_DOWN", {}); diff --git a/dom/base/Element.cpp b/dom/base/Element.cpp index dfe61dc0373a..f644c33f3e4e 100644 --- a/dom/base/Element.cpp +++ b/dom/base/Element.cpp @@ -341,9 +341,15 @@ void Element::Focus(mozilla::ErrorResult& aError) { nsCOMPtr domElement = do_QueryInterface(this); - nsIFocusManager* fm = nsFocusManager::GetFocusManager(); + nsFocusManager* fm = nsFocusManager::GetFocusManager(); + // Also other browsers seem to have the hack to not re-focus (and flush) when + // the element is already focused. if (fm && domElement) { - aError = fm->SetFocus(domElement, 0); + if (fm->CanSkipFocus(this)) { + fm->NeedsFlushBeforeEventHandling(this); + } else { + aError = fm->SetFocus(domElement, 0); + } } } diff --git a/dom/base/Timeout.cpp b/dom/base/Timeout.cpp index ebd612e721a6..a2b03b69acee 100644 --- a/dom/base/Timeout.cpp +++ b/dom/base/Timeout.cpp @@ -22,7 +22,7 @@ Timeout::Timeout() mReason(Reason::eTimeoutOrInterval), mTimeoutId(0), mInterval(0), - mFiringDepth(0), + mFiringId(TimeoutManager::InvalidFiringId), mNestingLevel(0), mPopupState(openAllowed) { @@ -43,13 +43,11 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(Timeout) NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Timeout) NS_IMPL_CYCLE_COLLECTION_UNLINK(mWindow) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mPrincipal) NS_IMPL_CYCLE_COLLECTION_UNLINK(mScriptHandler) NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Timeout) NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPrincipal) NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mScriptHandler) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END diff --git a/dom/base/Timeout.h b/dom/base/Timeout.h index a5206162aeb9..7ebc77284c71 100644 --- a/dom/base/Timeout.h +++ b/dom/base/Timeout.h @@ -90,11 +90,9 @@ public: // Interval in milliseconds uint32_t mInterval; - // Principal with which to execute - nsCOMPtr mPrincipal; - - // stack depth at which timeout is firing - uint32_t mFiringDepth; + // Identifies which firing level this Timeout is being processed in + // when sync loops trigger nested firing. + uint32_t mFiringId; uint32_t mNestingLevel; diff --git a/dom/base/TimeoutManager.cpp b/dom/base/TimeoutManager.cpp index 0586a876e7a8..2f92b46014ef 100644 --- a/dom/base/TimeoutManager.cpp +++ b/dom/base/TimeoutManager.cpp @@ -139,12 +139,73 @@ static int32_t gMinTrackingBackgroundTimeoutValue = 0; static int32_t gTrackingTimeoutThrottlingDelay = 0; static bool gAnnotateTrackingChannels = false; +// static +const uint32_t TimeoutManager::InvalidFiringId = 0; + bool TimeoutManager::IsBackground() const { return !mWindow.AsInner()->IsPlayingAudio() && mWindow.IsBackgroundInternal(); } +uint32_t +TimeoutManager::CreateFiringId() +{ + uint32_t id = mNextFiringId; + mNextFiringId += 1; + if (mNextFiringId == InvalidFiringId) { + mNextFiringId += 1; + } + + mFiringIdStack.AppendElement(id); + + return id; +} + +void +TimeoutManager::DestroyFiringId(uint32_t aFiringId) +{ + MOZ_DIAGNOSTIC_ASSERT(!mFiringIdStack.IsEmpty()); + MOZ_DIAGNOSTIC_ASSERT(mFiringIdStack.LastElement() == aFiringId); + mFiringIdStack.RemoveElementAt(mFiringIdStack.Length() - 1); +} + +bool +TimeoutManager::IsInvalidFiringId(uint32_t aFiringId) const +{ + // Check the most common ways to invalidate a firing id first. + // These should be quite fast. + if (aFiringId == InvalidFiringId || + mFiringIdStack.IsEmpty() || + (mFiringIdStack.Length() == 1 && mFiringIdStack[0] != aFiringId)) { + return true; + } + + // Next do a range check on the first and last items in the stack + // of active firing ids. This is a bit slower. + uint32_t low = mFiringIdStack[0]; + uint32_t high = mFiringIdStack.LastElement(); + MOZ_DIAGNOSTIC_ASSERT(low != high); + if (low > high) { + // If the first element is bigger than the last element in the + // stack, that means mNextFiringId wrapped around to zero at + // some point. + Swap(low, high); + } + MOZ_DIAGNOSTIC_ASSERT(low < high); + + if (aFiringId < low || aFiringId > high) { + return true; + } + + // Finally, fall back to verifying the firing id is not anywhere + // in the stack. This could be slow for a large stack, but that + // should be rare. It can only happen with deeply nested event + // loop spinning. For example, a page that does a lot of timers + // and a lot of sync XHRs within those timers could be slow here. + return !mFiringIdStack.Contains(aFiringId); +} + int32_t TimeoutManager::DOMMinTimeoutValue(bool aIsTracking) const { // First apply any back pressure delay that might be in effect. @@ -184,10 +245,10 @@ uint32_t TimeoutManager::sNestingLevel = 0; namespace { -// The maximum number of timer callbacks we will try to run in a single event -// loop runnable. -#define DEFAULT_TARGET_MAX_CONSECUTIVE_CALLBACKS 5 -uint32_t gTargetMaxConsecutiveCallbacks; +// The maximum number of milliseconds to allow consecutive timer callbacks +// to run in a single event loop runnable. +#define DEFAULT_MAX_CONSECUTIVE_CALLBACKS_MILLISECONDS 4 +uint32_t gMaxConsecutiveCallbacksMilliseconds; // The number of queued runnables within the TabGroup ThrottledEventQueue // at which to begin applying back pressure to the window. @@ -241,7 +302,7 @@ CalculateNewBackPressureDelayMS(uint32_t aBacklogDepth) TimeoutManager::TimeoutManager(nsGlobalWindow& aWindow) : mWindow(aWindow), mTimeoutIdCounter(1), - mTimeoutFiringDepth(0), + mNextFiringId(InvalidFiringId + 1), mRunningTimeout(nullptr), mIdleCallbackTimeoutCounter(1), mBackPressureDelayMS(0), @@ -302,9 +363,9 @@ TimeoutManager::Initialize() "dom.timeout.back_pressure_delay_minimum_ms", DEFAULT_BACK_PRESSURE_DELAY_MINIMUM_MS); - Preferences::AddUintVarCache(&gTargetMaxConsecutiveCallbacks, - "dom.timeout.max_consecutive_callbacks", - DEFAULT_TARGET_MAX_CONSECUTIVE_CALLBACKS); + Preferences::AddUintVarCache(&gMaxConsecutiveCallbacksMilliseconds, + "dom.timeout.max_consecutive_callbacks_ms", + DEFAULT_MAX_CONSECUTIVE_CALLBACKS_MILLISECONDS); } uint32_t @@ -319,6 +380,12 @@ TimeoutManager::GetTimeoutId(Timeout::Reason aReason) } } +bool +TimeoutManager::IsRunningTimeout() const +{ + return mRunningTimeout; +} + nsresult TimeoutManager::SetTimeout(nsITimeoutHandler* aHandler, int32_t interval, bool aIsInterval, @@ -522,12 +589,33 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) NS_ASSERTION(!mWindow.IsFrozen(), "Timeout running on a window in the bfcache!"); + // Limit the overall time spent in RunTimeout() to reduce jank. + uint32_t totalTimeLimitMS = std::max(1u, gMaxConsecutiveCallbacksMilliseconds); + const TimeDuration totalTimeLimit = TimeDuration::FromMilliseconds(totalTimeLimitMS); + + // Allow up to 25% of our total time budget to be used figuring out which + // timers need to run. This is the initial loop in this method. + const TimeDuration initalTimeLimit = + TimeDuration::FromMilliseconds(totalTimeLimit.ToMilliseconds() / 4); + + // Ammortize overhead from from calling TimeStamp::Now() in the initial + // loop, though, by only checking for an elapsed limit every N timeouts. + const uint32_t kNumTimersPerInitialElapsedCheck = 100; + + // Start measuring elapsed time immediately. We won't potentially expire + // the time budget until at least one Timeout has run, though. + TimeStamp start = TimeStamp::Now(); + Timeout* last_expired_normal_timeout = nullptr; Timeout* last_expired_tracking_timeout = nullptr; bool last_expired_timeout_is_normal = false; Timeout* last_normal_insertion_point = nullptr; Timeout* last_tracking_insertion_point = nullptr; - uint32_t firingDepth = mTimeoutFiringDepth + 1; + + uint32_t firingId = CreateFiringId(); + auto guard = MakeScopeExit([&] { + DestroyFiringId(firingId); + }); // Make sure that the window and the script context don't go away as // a result of running timeouts @@ -577,10 +665,10 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) break; } - if (timeout->mFiringDepth == 0) { + if (IsInvalidFiringId(timeout->mFiringId)) { // Mark any timeouts that are on the list to be fired with the // firing depth so that we can reentrantly run timeouts - timeout->mFiringDepth = firingDepth; + timeout->mFiringId = firingId; last_expired_timeout_is_normal = expiredIter.PickedNormalIter(); if (last_expired_timeout_is_normal) { last_expired_normal_timeout = timeout; @@ -600,16 +688,13 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) // maximum. Note, we must always run our target timer however. // Further timers that are ready will get picked up by their own // nsITimer runnables when they execute. - // - // For chrome windows, however, we do coalesce all timers and - // do not yield the main thread. This is partly because we - // trust chrome windows not to misbehave and partly because a - // number of browser chrome tests have races that depend on this - // coalescing. - if (targetTimerSeen && - numTimersToRun >= gTargetMaxConsecutiveCallbacks && - !mWindow.IsChromeWindow()) { - break; + if (targetTimerSeen) { + if (numTimersToRun % kNumTimersPerInitialElapsedCheck == 0) { + TimeDuration elapsed(TimeStamp::Now() - start); + if (elapsed >= initalTimeLimit) { + break; + } + } } } @@ -630,14 +715,14 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) // win_run_timeout(). This dummy timeout serves as the head of the // list for any timeouts inserted as a result of running a timeout. RefPtr dummy_normal_timeout = new Timeout(); - dummy_normal_timeout->mFiringDepth = firingDepth; + dummy_normal_timeout->mFiringId = firingId; dummy_normal_timeout->SetDummyWhen(now); if (last_expired_timeout_is_normal) { last_expired_normal_timeout->setNext(dummy_normal_timeout); } RefPtr dummy_tracking_timeout = new Timeout(); - dummy_tracking_timeout->mFiringDepth = firingDepth; + dummy_tracking_timeout->mFiringId = firingId; dummy_tracking_timeout->SetDummyWhen(now); if (!last_expired_timeout_is_normal) { last_expired_tracking_timeout->setNext(dummy_tracking_timeout); @@ -663,6 +748,8 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) mTrackingTimeouts.SetInsertionPoint(dummy_tracking_timeout); } + bool targetTimeoutSeen = false; + // We stop iterating each list when we go past the last expired timeout from // that list that we have observed above. That timeout will either be the // dummy timeout for the list that the last expired timeout came from, or it @@ -680,7 +767,7 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) last_expired_tracking_timeout ? last_expired_tracking_timeout->getNext() : nullptr); - while (!mWindow.IsFrozen()) { + while (true) { Timeout* timeout = runIter.Next(); MOZ_ASSERT(timeout != dummy_normal_timeout && timeout != dummy_tracking_timeout, @@ -691,17 +778,15 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) } runIter.UpdateIterator(); - if (timeout->mFiringDepth != firingDepth) { + if (timeout->mFiringId != firingId) { // We skip the timeout since it's on the list to run at another // depth. continue; } + MOZ_ASSERT_IF(mWindow.IsFrozen(), mWindow.IsSuspended()); if (mWindow.IsSuspended()) { - // Some timer did suspend us. Make sure the - // rest of the timers get executed later. - timeout->mFiringDepth = 0; - continue; + break; } // The timeout is on the list to run at this depth, go ahead and @@ -713,10 +798,17 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) if (!scx) { // No context means this window was closed or never properly - // initialized for this language. + // initialized for this language. This timer will never fire + // so just remove it. + timeout->remove(); + timeout->Release(); continue; } + if (timeout == aTimeout) { + targetTimeoutSeen = true; + } + // This timeout is good to run bool timeout_was_cleared = mWindow.RunTimeoutHandler(timeout, scx); MOZ_LOG(gLog, LogLevel::Debug, @@ -750,6 +842,9 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) mNormalTimeouts.SetInsertionPoint(last_normal_insertion_point); mTrackingTimeouts.SetInsertionPoint(last_tracking_insertion_point); + // Since ClearAllTimeouts() was called the lists should be empty. + MOZ_DIAGNOSTIC_ASSERT(!HasTimeouts()); + return; } @@ -779,6 +874,18 @@ TimeoutManager::RunTimeout(Timeout* aTimeout) // Release the timeout struct since it's possibly out of the list timeout->Release(); + + // Check to see if we have run out of time to execute timeout handlers. + // If we've exceeded our time budget then terminate the loop immediately. + // + // Note, we only do this if we have seen the Timeout object explicitly + // passed to RunTimeout(). The target timeout must always be executed. + if (targetTimeoutSeen) { + TimeDuration elapsed = TimeStamp::Now() - start; + if (elapsed >= totalTimeLimit) { + break; + } + } } } @@ -1100,11 +1207,11 @@ TimeoutManager::Timeouts::ResetTimersForThrottleReduction(int32_t aPreviousThrot NS_ASSERTION(!nextTimeout || timeout->When() < nextTimeout->When(), "How did that happen?"); timeout->remove(); - // Insert() will addref |timeout| and reset mFiringDepth. Make sure to + // Insert() will addref |timeout| and reset mFiringId. Make sure to // undo that after calling it. - uint32_t firingDepth = timeout->mFiringDepth; + uint32_t firingId = timeout->mFiringId; Insert(timeout, aSortBy); - timeout->mFiringDepth = firingDepth; + timeout->mFiringId = firingId; timeout->Release(); } @@ -1198,7 +1305,7 @@ TimeoutManager::Timeouts::Insert(Timeout* aTimeout, SortBy aSortBy) InsertFront(aTimeout); } - aTimeout->mFiringDepth = 0; + aTimeout->mFiringId = InvalidFiringId; // Increment the timeout's reference count since it's now held on to // by the list @@ -1212,7 +1319,6 @@ TimeoutManager::BeginRunningTimeout(Timeout* aTimeout) mRunningTimeout = aTimeout; ++gRunningTimeoutDepth; - ++mTimeoutFiringDepth; if (!mWindow.IsChromeWindow()) { TimeStamp now = TimeStamp::Now(); @@ -1233,7 +1339,6 @@ TimeoutManager::BeginRunningTimeout(Timeout* aTimeout) void TimeoutManager::EndRunningTimeout(Timeout* aTimeout) { - --mTimeoutFiringDepth; --gRunningTimeoutDepth; if (!mWindow.IsChromeWindow()) { diff --git a/dom/base/TimeoutManager.h b/dom/base/TimeoutManager.h index 0afc40d9ac23..ff99b8d04d82 100644 --- a/dom/base/TimeoutManager.h +++ b/dom/base/TimeoutManager.h @@ -8,6 +8,7 @@ #define mozilla_dom_TimeoutManager_h__ #include "mozilla/dom/Timeout.h" +#include "nsTArray.h" class nsIEventTarget; class nsITimeoutHandler; @@ -27,7 +28,7 @@ public: TimeoutManager(const TimeoutManager& rhs) = delete; void operator=(const TimeoutManager& rhs) = delete; - bool IsRunningTimeout() const { return mTimeoutFiringDepth > 0; } + bool IsRunningTimeout() const; static uint32_t GetNestingLevel() { return sNestingLevel; } static void SetNestingLevel(uint32_t aLevel) { sNestingLevel = aLevel; } @@ -117,11 +118,24 @@ public: void BeginSyncOperation(); void EndSyncOperation(); + + static const uint32_t InvalidFiringId; + private: nsresult ResetTimersForThrottleReduction(int32_t aPreviousThrottleDelayMS); void MaybeStartThrottleTrackingTimout(); bool IsBackground() const; + + uint32_t + CreateFiringId(); + + void + DestroyFiringId(uint32_t aFiringId); + + bool + IsInvalidFiringId(uint32_t aFiringId) const; + private: struct Timeouts { Timeouts() @@ -209,7 +223,8 @@ private: // The list of timeouts coming from scripts on the tracking protection list. Timeouts mTrackingTimeouts; uint32_t mTimeoutIdCounter; - uint32_t mTimeoutFiringDepth; + uint32_t mNextFiringId; + AutoTArray mFiringIdStack; mozilla::dom::Timeout* mRunningTimeout; // The current idle request callback timeout handle diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp index 4946cc557a11..0f47bedbe83c 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -181,6 +181,7 @@ static const char* kObservedPrefs[] = { }; nsFocusManager::nsFocusManager() + : mEventHandlingNeedsFlush(false) { } nsFocusManager::~nsFocusManager() @@ -1567,6 +1568,7 @@ nsFocusManager::CheckIfFocusable(nsIContent* aContent, uint32_t aFlags) } // Make sure that our frames are up to date + mEventHandlingNeedsFlush = false; doc->FlushPendingNotifications(FlushType::Layout); nsIPresShell *shell = doc->GetShell(); diff --git a/dom/base/nsFocusManager.h b/dom/base/nsFocusManager.h index e994590bbd34..0f270aef324c 100644 --- a/dom/base/nsFocusManager.h +++ b/dom/base/nsFocusManager.h @@ -8,6 +8,7 @@ #define nsFocusManager_h___ #include "nsCycleCollectionParticipant.h" +#include "nsIContent.h" #include "nsIDocument.h" #include "nsIFocusManager.h" #include "nsIObserver.h" @@ -93,6 +94,29 @@ public: return handlingDocument.forget(); } + void NeedsFlushBeforeEventHandling(nsIContent* aContent) + { + if (mFocusedContent == aContent) { + mEventHandlingNeedsFlush = true; + } + } + + bool CanSkipFocus(nsIContent* aContent) + { + return mFocusedContent == aContent; + } + + void FlushBeforeEventHandlingIfNeeded(nsIContent* aContent) + { + if (mEventHandlingNeedsFlush) { + nsCOMPtr doc = aContent->GetComposedDoc(); + if (doc) { + mEventHandlingNeedsFlush = false; + doc->FlushPendingNotifications(mozilla::FlushType::Layout); + } + } + } + /** * Update the caret with current mode (whether in caret browsing mode or not). */ @@ -561,6 +585,10 @@ private: // moving focus. nsCOMPtr mMouseButtonEventHandlingDocument; + // If set to true, layout of the document of the event target should be + // flushed before handling focus depending events. + bool mEventHandlingNeedsFlush; + static bool sTestMode; // the single focus manager diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp index aaa2d7b673d9..bd6a08d61cdb 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp @@ -4925,6 +4925,14 @@ HTMLInputElement::HandleTypeChange(uint8_t aNewType, bool aNotify) uint8_t oldType = mType; MOZ_ASSERT(oldType != aNewType); + nsFocusManager* fm = nsFocusManager::GetFocusManager(); + if (fm) { + // Input element can represent very different kinds of UIs, and we may + // need to flush styling even when focusing the already focused input + // element. + fm->NeedsFlushBeforeEventHandling(this); + } + if (aNewType == NS_FORM_INPUT_FILE || oldType == NS_FORM_INPUT_FILE) { if (aNewType == NS_FORM_INPUT_FILE) { mFileData.reset(new FileData()); diff --git a/extensions/cookie/moz.build b/extensions/cookie/moz.build index 8564d23e0805..da56a6d5ec45 100644 --- a/extensions/cookie/moz.build +++ b/extensions/cookie/moz.build @@ -14,6 +14,10 @@ UNIFIED_SOURCES += [ 'nsPopupWindowManager.cpp', ] +LOCAL_INCLUDES += [ + '/caps', +] + include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' diff --git a/extensions/cookie/nsPermissionManager.cpp b/extensions/cookie/nsPermissionManager.cpp index 407fa93818d0..215944cd893b 100644 --- a/extensions/cookie/nsPermissionManager.cpp +++ b/extensions/cookie/nsPermissionManager.cpp @@ -1,4 +1,5 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -41,6 +42,7 @@ #include "nsIObserverService.h" #include "nsPrintfCString.h" #include "mozilla/AbstractThread.h" +#include "ContentPrincipal.h" static nsPermissionManager *gPermissionManager = nullptr; @@ -238,6 +240,37 @@ GetNextSubDomainForHost(const nsACString& aHost) return subDomain; } +// This function produces a nsIURI which is identical to the current +// nsIURI, except that it has one less subdomain segment. It returns +// `nullptr` if there are no more segments to remove. +already_AddRefed +GetNextSubDomainURI(nsIURI* aURI) +{ + nsAutoCString host; + nsresult rv = aURI->GetHost(host); + if (NS_FAILED(rv)) { + return nullptr; + } + + nsCString domain = GetNextSubDomainForHost(host); + if (domain.IsEmpty()) { + return nullptr; + } + + nsCOMPtr uri; + rv = aURI->Clone(getter_AddRefs(uri)); + if (NS_FAILED(rv) || !uri) { + return nullptr; + } + + rv = uri->SetHost(domain); + if (NS_FAILED(rv)) { + return nullptr; + } + + return uri.forget(); +} + // This function produces a nsIPrincipal which is identical to the current // nsIPrincipal, except that it has one less subdomain segment. It returns // `nullptr` if there are no more segments to remove. @@ -250,26 +283,9 @@ GetNextSubDomainPrincipal(nsIPrincipal* aPrincipal) return nullptr; } - nsAutoCString host; - rv = uri->GetHost(host); - if (NS_FAILED(rv)) { - return nullptr; - } - - nsCString domain = GetNextSubDomainForHost(host); - if (domain.IsEmpty()) { - return nullptr; - } - // Create a new principal which is identical to the current one, but with the new host - nsCOMPtr newURI; - rv = uri->Clone(getter_AddRefs(newURI)); - if (NS_FAILED(rv)) { - return nullptr; - } - - rv = newURI->SetHost(domain); - if (NS_FAILED(rv)) { + nsCOMPtr newURI = GetNextSubDomainURI(uri); + if (!newURI) { return nullptr; } @@ -711,6 +727,18 @@ nsPermissionManager::PermissionKey::CreateFromPrincipal(nsIPrincipal* aPrincipal return new PermissionKey(origin); } +nsPermissionManager::PermissionKey* +nsPermissionManager::PermissionKey::CreateFromURI(nsIURI* aURI, nsresult& aResult) +{ + nsAutoCString origin; + aResult = ContentPrincipal::GenerateOriginNoSuffixFromURI(aURI, origin); + if (NS_WARN_IF(NS_FAILED(aResult))) { + return nullptr; + } + + return new PermissionKey(origin); +} + /** * Simple callback used by |AsyncClose| to trigger a treatment once * the database is closed. @@ -2069,11 +2097,7 @@ nsPermissionManager::TestExactPermission(nsIURI *aURI, const char *aType, uint32_t *aPermission) { - nsCOMPtr principal; - nsresult rv = GetPrincipal(aURI, getter_AddRefs(principal)); - NS_ENSURE_SUCCESS(rv, rv); - - return TestExactPermissionFromPrincipal(principal, aType, aPermission); + return CommonTestPermission(aURI, aType, aPermission, true, true); } NS_IMETHODIMP @@ -2097,11 +2121,7 @@ nsPermissionManager::TestPermission(nsIURI *aURI, const char *aType, uint32_t *aPermission) { - nsCOMPtr principal; - nsresult rv = GetPrincipal(aURI, getter_AddRefs(principal)); - NS_ENSURE_SUCCESS(rv, rv); - - return TestPermissionFromPrincipal(principal, aType, aPermission); + return CommonTestPermission(aURI, aType, aPermission, false, true); } NS_IMETHODIMP @@ -2198,16 +2218,19 @@ nsPermissionManager::GetPermissionObject(nsIPrincipal* aPrincipal, } nsresult -nsPermissionManager::CommonTestPermission(nsIPrincipal* aPrincipal, - const char *aType, - uint32_t *aPermission, - bool aExactHostMatch, - bool aIncludingSession) +nsPermissionManager::CommonTestPermissionInternal(nsIPrincipal* aPrincipal, + nsIURI * aURI, + const char * aType, + uint32_t * aPermission, + bool aExactHostMatch, + bool aIncludingSession) { - NS_ENSURE_ARG_POINTER(aPrincipal); + MOZ_ASSERT(aPrincipal || aURI); + MOZ_ASSERT_IF(aPrincipal, !aURI); + NS_ENSURE_ARG_POINTER(aPrincipal || aURI); NS_ENSURE_ARG_POINTER(aType); - if (nsContentUtils::IsSystemPrincipal(aPrincipal)) { + if (aPrincipal && nsContentUtils::IsSystemPrincipal(aPrincipal)) { *aPermission = nsIPermissionManager::ALLOW_ACTION; return NS_OK; } @@ -2225,8 +2248,8 @@ nsPermissionManager::CommonTestPermission(nsIPrincipal* aPrincipal, for (size_t i = 0; i < whitelist->Length(); ++i) { uint32_t perm; - rv = CommonTestPermission(whitelist->ElementAt(i), aType, &perm, aExactHostMatch, - aIncludingSession); + rv = CommonTestPermission(whitelist->ElementAt(i), aType, &perm, + aExactHostMatch, aIncludingSession); NS_ENSURE_SUCCESS(rv, rv); if (perm == nsIPermissionManager::ALLOW_ACTION) { *aPermission = perm; @@ -2240,14 +2263,24 @@ nsPermissionManager::CommonTestPermission(nsIPrincipal* aPrincipal, return NS_OK; } - MOZ_ASSERT(PermissionAvaliable(aPrincipal, aType)); +#ifdef DEBUG + { + nsCOMPtr prin = aPrincipal; + if (!prin) { + prin = mozilla::BasePrincipal::CreateCodebasePrincipal(aURI, OriginAttributes()); + } + MOZ_ASSERT(PermissionAvaliable(prin, aType)); + } +#endif int32_t typeIndex = GetTypeIndex(aType, false); // If type == -1, the type isn't known, // so just return NS_OK if (typeIndex == -1) return NS_OK; - PermissionHashKey* entry = GetPermissionHashKey(aPrincipal, typeIndex, aExactHostMatch); + PermissionHashKey* entry = aPrincipal ? + GetPermissionHashKey(aPrincipal, typeIndex, aExactHostMatch) : + GetPermissionHashKey(aURI, typeIndex, aExactHostMatch); if (!entry || (!aIncludingSession && entry->GetPermission(typeIndex).mNonSessionExpireType == @@ -2317,6 +2350,74 @@ nsPermissionManager::GetPermissionHashKey(nsIPrincipal* aPrincipal, return nullptr; } +// Returns PermissionHashKey for a given { host, appId, isInBrowserElement } tuple. +// This is not simply using PermissionKey because we will walk-up domains in +// case of |host| contains sub-domains. +// Returns null if nothing found. +// Also accepts host on the format "". This will perform an exact match +// lookup as the string doesn't contain any dots. +nsPermissionManager::PermissionHashKey* +nsPermissionManager::GetPermissionHashKey(nsIURI* aURI, + uint32_t aType, + bool aExactHostMatch) +{ +#ifdef DEBUG + { + nsCOMPtr principal; + nsresult rv = GetPrincipal(aURI, getter_AddRefs(principal)); + MOZ_ASSERT_IF(NS_SUCCEEDED(rv), + PermissionAvaliable(principal, mTypeArray[aType].get())); + } +#endif + + nsresult rv; + RefPtr key = + PermissionKey::CreateFromURI(aURI, rv); + if (!key) { + return nullptr; + } + + PermissionHashKey* entry = mPermissionTable.GetEntry(key); + + if (entry) { + PermissionEntry permEntry = entry->GetPermission(aType); + + // if the entry is expired, remove and keep looking for others. + // Note that EXPIRE_SESSION only honors expireTime if it is nonzero. + if ((permEntry.mExpireType == nsIPermissionManager::EXPIRE_TIME || + (permEntry.mExpireType == nsIPermissionManager::EXPIRE_SESSION && + permEntry.mExpireTime != 0)) && + permEntry.mExpireTime <= (PR_Now() / 1000)) { + entry = nullptr; + // If we need to remove a permission we mint a principal. This is a bit + // inefficient, but hopefully this code path isn't super common. + nsCOMPtr principal; + nsresult rv = GetPrincipal(aURI, getter_AddRefs(principal)); + if (NS_WARN_IF(NS_FAILED(rv))) { + return nullptr; + } + RemoveFromPrincipal(principal, mTypeArray[aType].get()); + } else if (permEntry.mPermission == nsIPermissionManager::UNKNOWN_ACTION) { + entry = nullptr; + } + } + + if (entry) { + return entry; + } + + // If aExactHostMatch wasn't true, we can check if the base domain has a permission entry. + if (!aExactHostMatch) { + nsCOMPtr uri = GetNextSubDomainURI(aURI); + if (uri) { + return GetPermissionHashKey(uri, aType, aExactHostMatch); + } + } + + // No entry, really... + return nullptr; +} + NS_IMETHODIMP nsPermissionManager::GetEnumerator(nsISimpleEnumerator **aEnum) { if (XRE_IsContentProcess()) { diff --git a/extensions/cookie/nsPermissionManager.h b/extensions/cookie/nsPermissionManager.h index ac2d6d6b6be5..e1774a409d0b 100644 --- a/extensions/cookie/nsPermissionManager.h +++ b/extensions/cookie/nsPermissionManager.h @@ -1,4 +1,5 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -76,6 +77,8 @@ public: public: static PermissionKey* CreateFromPrincipal(nsIPrincipal* aPrincipal, nsresult& aResult); + static PermissionKey* CreateFromURI(nsIURI* aURI, + nsresult& aResult); explicit PermissionKey(const nsACString& aOrigin) : mOrigin(aOrigin) @@ -273,12 +276,36 @@ private: PermissionHashKey* GetPermissionHashKey(nsIPrincipal* aPrincipal, uint32_t aType, bool aExactHostMatch); + PermissionHashKey* GetPermissionHashKey(nsIURI* aURI, + uint32_t aType, + bool aExactHostMatch); nsresult CommonTestPermission(nsIPrincipal* aPrincipal, - const char *aType, - uint32_t *aPermission, + const char * aType, + uint32_t * aPermission, + bool aExactHostMatch, + bool aIncludingSession) + { + return CommonTestPermissionInternal(aPrincipal, nullptr, aType, + aPermission, aExactHostMatch, + aIncludingSession); + } + nsresult CommonTestPermission(nsIURI * aURI, + const char* aType, + uint32_t * aPermission, bool aExactHostMatch, - bool aIncludingSession); + bool aIncludingSession) + { + return CommonTestPermissionInternal(nullptr, aURI, aType, aPermission, + aExactHostMatch, aIncludingSession); + } + // Only one of aPrincipal or aURI is allowed to be passed in. + nsresult CommonTestPermissionInternal(nsIPrincipal* aPrincipal, + nsIURI * aURI, + const char * aType, + uint32_t * aPermission, + bool aExactHostMatch, + bool aIncludingSession); nsresult OpenDatabase(nsIFile* permissionsFile); nsresult InitDB(bool aRemoveFile); diff --git a/gfx/layers/d3d11/CompositorD3D11Shaders.h b/gfx/layers/d3d11/CompositorD3D11Shaders.h deleted file mode 100755 index 8b942403c85e..000000000000 --- a/gfx/layers/d3d11/CompositorD3D11Shaders.h +++ /dev/null @@ -1,12597 +0,0 @@ -struct ShaderBytes { const void* mData; size_t mLength; }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4x4 mMaskTransform; // Offset: 176 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 [unused] -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 8 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c9.zwzw, c9 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c2 - mad r0, c1, r0.x, r1 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - -// approximately 15 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[11], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_temps 2 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r0.xyz, r0.xyzx, r0.wwww -add r0.xyzw, r0.xyzw, -cb0[8].xyzw -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyzw, r0.yyyy, cb0[5].xyzw -mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw -mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw -mad o0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -ret -// Approximately 13 instruction slots used -#endif - -const BYTE LayerQuadVS[] = -{ - 68, 88, 66, 67, 158, 249, - 155, 4, 180, 205, 12, 198, - 13, 145, 179, 10, 107, 120, - 251, 61, 1, 0, 0, 0, - 72, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 152, 1, 0, 0, 160, 3, - 0, 0, 28, 4, 0, 0, - 188, 6, 0, 0, 240, 6, - 0, 0, 65, 111, 110, 57, - 88, 1, 0, 0, 88, 1, - 0, 0, 0, 2, 254, 255, - 24, 1, 0, 0, 64, 0, - 0, 0, 2, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 0, 0, 36, 0, - 1, 0, 60, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 8, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 9, 0, 238, 160, 9, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 128, 0, 0, - 228, 144, 10, 0, 238, 160, - 10, 0, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 2, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 1, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 3, 0, - 228, 160, 6, 0, 0, 2, - 1, 0, 1, 128, 0, 0, - 255, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 0, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 8, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 255, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 4, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 255, 128, 1, 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, 255, 255, 0, 0, - 83, 72, 68, 82, 0, 2, - 0, 0, 64, 0, 1, 0, - 128, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 0, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 1, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 50, 0, 0, 11, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 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, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 8, 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, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 13, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 152, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 112, 2, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 242, 1, - 0, 0, 240, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 5, 2, - 0, 0, 48, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 17, 2, - 0, 0, 64, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, - 0, 0, 0, 0, 48, 2, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 96, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 96, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 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, 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, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 171, 171, 171, - 79, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 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, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 171, 171 -}; -ShaderBytes sLayerQuadVS = { LayerQuadVS, sizeof(LayerQuadVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 176 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 [unused] -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - dcl_texcoord v0 - dcl_texcoord1 v1 - mul r0, v0.y, c2 - mad r0, c1, v0.x, r0 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT0.xy, v1 - -// approximately 14 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[9], immediateIndexed -dcl_input v0.xy -dcl_input v1.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_temps 2 -mul r0.xyzw, v0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r0.xyz, r0.xyzx, r0.wwww -add r0.xyzw, r0.xyzw, -cb0[8].xyzw -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyzw, r0.yyyy, cb0[5].xyzw -mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw -mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw -mad o0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw -mov o1.xy, v1.xyxx -ret -// Approximately 12 instruction slots used -#endif - -const BYTE LayerDynamicVS[] = -{ - 68, 88, 66, 67, 11, 85, - 4, 119, 93, 228, 195, 201, - 22, 72, 173, 198, 47, 25, - 227, 199, 1, 0, 0, 0, - 32, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 136, 1, 0, 0, 88, 3, - 0, 0, 212, 3, 0, 0, - 116, 6, 0, 0, 200, 6, - 0, 0, 65, 111, 110, 57, - 72, 1, 0, 0, 72, 1, - 0, 0, 0, 2, 254, 255, - 8, 1, 0, 0, 64, 0, - 0, 0, 2, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 0, 0, 36, 0, - 1, 0, 60, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 6, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 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, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 85, 144, - 2, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 1, 0, 228, 160, 0, 0, - 0, 144, 0, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 3, 0, 228, 160, 6, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 255, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 0, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 8, 0, 228, 161, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 255, 128, - 0, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 5, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 15, 128, 4, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 15, 128, - 6, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 7, 0, 228, 160, - 0, 0, 255, 128, 1, 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, 3, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 200, 1, 0, 0, 64, 0, - 1, 0, 114, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 86, 21, - 16, 0, 0, 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, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 8, 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, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 12, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 10, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 152, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 112, 2, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 242, 1, - 0, 0, 240, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 5, 2, - 0, 0, 48, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 17, 2, - 0, 0, 64, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, - 0, 0, 0, 0, 48, 2, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 96, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 96, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 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, 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, 3, 3, 0, 0, - 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 79, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171 -}; -ShaderBytes sLayerDynamicVS = { LayerDynamicVS, sizeof(LayerDynamicVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 -// float fLayerOpacity; // Offset: 16 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 0 1 ( FLT, FLT, FLT, FLT) -// -// -// Level9 shader bytecode: -// - ps_2_x - mov oC0, c0 - -// approximately 1 instruction slot used -ps_4_0 -dcl_constantbuffer CB0[1], immediateIndexed -dcl_output o0.xyzw -mov o0.xyzw, cb0[0].xyzw -ret -// Approximately 2 instruction slots used -#endif - -const BYTE SolidColorShader[] = -{ - 68, 88, 66, 67, 31, 16, - 81, 179, 243, 141, 148, 255, - 60, 11, 92, 171, 28, 14, - 237, 203, 1, 0, 0, 0, - 120, 4, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 132, 0, 0, 0, 204, 0, - 0, 0, 72, 1, 0, 0, - 236, 3, 0, 0, 68, 4, - 0, 0, 65, 111, 110, 57, - 68, 0, 0, 0, 68, 0, - 0, 0, 0, 2, 255, 255, - 20, 0, 0, 0, 48, 0, - 0, 0, 1, 0, 36, 0, - 0, 0, 48, 0, 0, 0, - 48, 0, 0, 0, 36, 0, - 0, 0, 48, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 160, 255, 255, 0, 0, - 83, 72, 68, 82, 64, 0, - 0, 0, 64, 0, 0, 0, - 16, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 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, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 156, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 113, 2, 0, 0, 60, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 116, 1, - 0, 0, 0, 0, 0, 0, - 132, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 0, 0, 0, 0, - 164, 1, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 1, - 0, 0, 0, 0, 0, 0, - 196, 1, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 212, 1, - 0, 0, 0, 0, 0, 0, - 228, 1, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 4, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 116, 1, - 0, 0, 0, 0, 0, 0, - 36, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 52, 2, - 0, 0, 0, 0, 0, 0, - 68, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 52, 2, - 0, 0, 0, 0, 0, 0, - 79, 2, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 94, 2, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 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, 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 -}; -ShaderBytes sSolidColorShader = { SolidColorShader, sizeof(SolidColorShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0.xyz, r0, c0.x - mov r0.w, c0.x - mov oC0, r0 - -// approximately 4 instruction slots used (1 texture, 3 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 1 -sample r0.xyzw, v1.xyxx, t0.xyzw, s0 -mul o0.xyz, r0.xyzx, cb0[1].xxxx -mov o0.w, cb0[1].x -ret -// Approximately 4 instruction slots used -#endif - -const BYTE RGBShader[] = -{ - 68, 88, 66, 67, 26, 170, - 86, 163, 31, 89, 148, 91, - 161, 88, 174, 193, 214, 13, - 132, 225, 1, 0, 0, 0, - 128, 5, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 204, 0, 0, 0, 136, 1, - 0, 0, 4, 2, 0, 0, - 244, 4, 0, 0, 76, 5, - 0, 0, 65, 111, 110, 57, - 140, 0, 0, 0, 140, 0, - 0, 0, 0, 2, 255, 255, - 88, 0, 0, 0, 52, 0, - 0, 0, 1, 0, 40, 0, - 0, 0, 52, 0, 0, 0, - 52, 0, 1, 0, 36, 0, - 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 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, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 180, 0, - 0, 0, 64, 0, 0, 0, - 45, 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, 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, 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, 8, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 6, 130, 32, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 4, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 232, 2, - 0, 0, 1, 0, 0, 0, - 148, 0, 0, 0, 3, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 189, 2, 0, 0, - 124, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 133, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 138, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 82, 71, - 66, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 138, 0, 0, 0, 11, 0, - 0, 0, 172, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 180, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 224, 1, - 0, 0, 0, 0, 0, 0, - 240, 1, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 32, 2, - 0, 0, 0, 0, 0, 0, - 48, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 80, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 112, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 144, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 155, 2, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 170, 2, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, 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 -}; -ShaderBytes sRGBShader = { RGBShader, sizeof(RGBShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 3 instruction slots used (1 texture, 2 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 1 -sample r0.xyzw, v1.xyxx, t0.xyzw, s0 -mul o0.xyzw, r0.xyzw, cb0[1].xxxx -ret -// Approximately 3 instruction slots used -#endif - -const BYTE RGBAShader[] = -{ - 68, 88, 66, 67, 82, 143, - 160, 56, 250, 151, 68, 74, - 171, 251, 188, 119, 224, 208, - 55, 192, 1, 0, 0, 0, - 92, 5, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 192, 0, 0, 0, 100, 1, - 0, 0, 224, 1, 0, 0, - 208, 4, 0, 0, 40, 5, - 0, 0, 65, 111, 110, 57, - 128, 0, 0, 0, 128, 0, - 0, 0, 0, 2, 255, 255, - 76, 0, 0, 0, 52, 0, - 0, 0, 1, 0, 40, 0, - 0, 0, 52, 0, 0, 0, - 52, 0, 1, 0, 36, 0, - 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 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, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 156, 0, - 0, 0, 64, 0, 0, 0, - 39, 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, 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, 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, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 232, 2, - 0, 0, 1, 0, 0, 0, - 148, 0, 0, 0, 3, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 189, 2, 0, 0, - 124, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 133, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 138, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 82, 71, - 66, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 138, 0, 0, 0, 11, 0, - 0, 0, 172, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 180, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 224, 1, - 0, 0, 0, 0, 0, 0, - 240, 1, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 32, 2, - 0, 0, 0, 0, 0, 0, - 48, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 80, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 112, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 144, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 155, 2, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 170, 2, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, 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 -}; -ShaderBytes sRGBAShader = { RGBAShader, sizeof(RGBAShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tRGBWhite texture float4 2d t4 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t4 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - texld r0, t0, s0 - texld r1, t0, s1 - add r1, r0, -r1 - add r1, r1, c1.x - mov r0.w, r1.y - mul r1, r1, c0.x - mov oC1, r1 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 9 instruction slots used (2 texture, 7 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t4 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 2 -sample r0.xyzw, v1.xyxx, t4.xyzw, s0 -sample r1.xyzw, v1.xyxx, t0.xyzw, s0 -add r0.xyzw, -r0.xyzw, r1.xyzw -add r0.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) -mov r1.w, r0.y -mul o1.xyzw, r0.xyzw, cb0[1].xxxx -mul o0.xyzw, r1.xyzw, cb0[1].xxxx -ret -// Approximately 8 instruction slots used -#endif - -const BYTE ComponentAlphaShader[] = -{ - 68, 88, 66, 67, 141, 83, - 151, 108, 122, 94, 34, 209, - 87, 123, 153, 156, 73, 70, - 116, 57, 1, 0, 0, 0, - 220, 6, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 64, 1, 0, 0, 160, 2, - 0, 0, 28, 3, 0, 0, - 56, 6, 0, 0, 144, 6, - 0, 0, 65, 111, 110, 57, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 2, 255, 255, - 200, 0, 0, 0, 56, 0, - 0, 0, 1, 0, 44, 0, - 0, 0, 56, 0, 0, 0, - 56, 0, 2, 0, 36, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 4, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 81, 0, - 0, 5, 1, 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, 3, 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, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 2, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 128, - 1, 0, 228, 129, 2, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 1, 0, - 0, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 1, 0, - 85, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 0, 0, 0, 160, - 1, 0, 0, 2, 1, 8, - 15, 128, 1, 0, 228, 128, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 88, 1, 0, 0, 64, 0, - 0, 0, 86, 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, 88, 24, 0, 4, - 0, 112, 16, 0, 4, 0, - 0, 0, 85, 85, 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, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 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, 4, 0, 0, 0, - 0, 96, 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, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 8, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 20, 3, 0, 0, - 1, 0, 0, 0, 192, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 233, 2, 0, 0, 156, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 165, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 170, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 4, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 180, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 82, 71, - 66, 0, 116, 82, 71, 66, - 87, 104, 105, 116, 101, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 180, 0, 0, 0, 11, 0, - 0, 0, 216, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 224, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 1, - 0, 0, 0, 0, 0, 0, - 252, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 12, 2, - 0, 0, 0, 0, 0, 0, - 28, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 0, 0, 0, 0, - 60, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 76, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 124, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 1, - 0, 0, 0, 0, 0, 0, - 156, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 188, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 199, 2, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 214, 2, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, 68, 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, 56, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 -}; -ShaderBytes sComponentAlphaShader = { ComponentAlphaShader, sizeof(ComponentAlphaShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tCr texture float4 2d t3 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t1 -// s1 s0 t2 -// s2 s0 t3 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c4, -0.0627499968, -0.50195998, 1, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - mov r0.w, c4.z - texld r1, t0, s1 - texld r2, t0, s0 - add r2.x, r2.x, c4.x - add r2.y, r1.x, c4.y - texld r1, t0, s2 - add r2.z, r1.x, c4.y - dp3 r0.x, c1, r2 - dp3 r0.y, c2, r2 - dp3 r0.z, c3, r2 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 12 instruction slots used (3 texture, 9 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 3 -mov r0.w, l(1.000000) -sample r1.xyzw, v1.xyxx, t1.xyzw, s0 -add r1.x, r1.x, l(-0.062750) -sample r2.xyzw, v1.xyxx, t2.xyzw, s0 -add r1.y, r2.x, l(-0.501960) -sample r2.xyzw, v1.xyxx, t3.xyzw, s0 -add r1.z, r2.x, l(-0.501960) -dp3 r0.x, cb0[3].xyzx, r1.xyzx -dp3 r0.y, cb0[4].xyzx, r1.xyzx -dp3 r0.z, cb0[5].xyzx, r1.xyzx -mul o0.xyzw, r0.xyzw, cb0[1].xxxx -ret -// Approximately 12 instruction slots used -#endif - -const BYTE YCbCrShader[] = -{ - 68, 88, 66, 67, 144, 145, - 3, 115, 79, 221, 206, 93, - 244, 174, 182, 75, 160, 248, - 95, 149, 1, 0, 0, 0, - 164, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 144, 1, 0, 0, 100, 3, - 0, 0, 224, 3, 0, 0, - 24, 7, 0, 0, 112, 7, - 0, 0, 65, 111, 110, 57, - 80, 1, 0, 0, 80, 1, - 0, 0, 0, 2, 255, 255, - 8, 1, 0, 0, 72, 0, - 0, 0, 2, 0, 48, 0, - 0, 0, 72, 0, 0, 0, - 72, 0, 3, 0, 36, 0, - 0, 0, 72, 0, 1, 0, - 0, 0, 2, 0, 1, 0, - 3, 0, 2, 0, 0, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 4, 0, 15, 160, 18, 131, - 128, 189, 115, 128, 0, 191, - 0, 0, 128, 63, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 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, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 4, 0, - 170, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 1, 128, - 2, 0, 0, 128, 4, 0, - 0, 160, 2, 0, 0, 3, - 2, 0, 2, 128, 1, 0, - 0, 128, 4, 0, 85, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 176, - 2, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 4, 128, - 1, 0, 0, 128, 4, 0, - 85, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 160, 2, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 2, 128, 2, 0, 228, 160, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 3, 0, 228, 160, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 0, 160, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 204, 1, 0, 0, - 64, 0, 0, 0, 115, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 1, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 2, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 3, 0, - 0, 0, 85, 85, 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, 3, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 1, 0, 0, 0, - 1, 64, 0, 0, 18, 131, - 128, 189, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 2, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 34, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 115, 128, 0, 191, - 69, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 3, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 66, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 115, 128, 0, 191, 16, 0, - 0, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 34, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 48, 3, 0, 0, 1, 0, - 0, 0, 220, 0, 0, 0, - 5, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 255, 255, - 0, 1, 0, 0, 5, 3, - 0, 0, 188, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 197, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 1, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 200, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 2, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 204, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 3, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 208, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 89, 0, - 116, 67, 98, 0, 116, 67, - 114, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 171, 171, 208, 0, 0, 0, - 11, 0, 0, 0, 244, 0, - 0, 0, 144, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 252, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 40, 2, 0, 0, 0, 0, - 0, 0, 56, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 72, 2, 0, 0, 0, 0, - 0, 0, 88, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 2, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 120, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 152, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 164, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 184, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 0, 0, - 0, 0, 216, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 0, 0, - 0, 0, 227, 2, 0, 0, - 16, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 242, 2, 0, 0, - 80, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 109, - 77, 97, 115, 107, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 109, 66, 97, 99, - 107, 100, 114, 111, 112, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 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, 171, 171, 171, 73, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 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, - 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 -}; -ShaderBytes sYCbCrShader = { YCbCrShader, sizeof(YCbCrShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t1 -// s1 s0 t2 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c4, -0.0627499968, -0.50195998, 1, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - mov r0.w, c4.z - texld r1, t0, s1 - texld r2, t0, s0 - add r2.x, r2.x, c4.x - add r2.yz, r1.xxyw, c4.y - dp3 r0.x, c1, r2 - dp3 r0.y, c2, r2 - dp3 r0.z, c3, r2 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 10 instruction slots used (2 texture, 8 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 3 -mov r0.w, l(1.000000) -sample r1.xyzw, v1.xyxx, t1.xyzw, s0 -add r1.x, r1.x, l(-0.062750) -sample r2.xyzw, v1.xyxx, t2.xyzw, s0 -add r1.yz, r2.xxyx, l(0.000000, -0.501960, -0.501960, 0.000000) -dp3 r0.x, cb0[3].xyzx, r1.xyzx -dp3 r0.y, cb0[4].xyzx, r1.xyzx -dp3 r0.z, cb0[5].xyzx, r1.xyzx -mul o0.xyzw, r0.xyzw, cb0[1].xxxx -ret -// Approximately 10 instruction slots used -#endif - -const BYTE NV12Shader[] = -{ - 68, 88, 66, 67, 196, 33, - 229, 30, 127, 191, 69, 57, - 188, 163, 187, 63, 196, 65, - 63, 98, 1, 0, 0, 0, - 12, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 96, 1, 0, 0, 240, 2, - 0, 0, 108, 3, 0, 0, - 128, 6, 0, 0, 216, 6, - 0, 0, 65, 111, 110, 57, - 32, 1, 0, 0, 32, 1, - 0, 0, 0, 2, 255, 255, - 220, 0, 0, 0, 68, 0, - 0, 0, 2, 0, 44, 0, - 0, 0, 68, 0, 0, 0, - 68, 0, 2, 0, 36, 0, - 0, 0, 68, 0, 1, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 3, 0, - 1, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 81, 0, - 0, 5, 4, 0, 15, 160, - 18, 131, 128, 189, 115, 128, - 0, 191, 0, 0, 128, 63, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 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, 8, 128, - 4, 0, 170, 160, 66, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 228, 176, 1, 8, - 228, 160, 66, 0, 0, 3, - 2, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 2, 0, 0, 3, 2, 0, - 1, 128, 2, 0, 0, 128, - 4, 0, 0, 160, 2, 0, - 0, 3, 2, 0, 6, 128, - 1, 0, 208, 128, 4, 0, - 85, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 160, 2, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 2, 128, 2, 0, 228, 160, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 3, 0, 228, 160, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 0, 160, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 136, 1, 0, 0, - 64, 0, 0, 0, 98, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 1, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 2, 0, 0, 0, 85, 85, - 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, - 3, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 69, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 1, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 18, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 1, 64, 0, 0, - 18, 131, 128, 189, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 2, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 10, 98, 0, 16, 0, - 1, 0, 0, 0, 6, 1, - 16, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 115, 128, 0, 191, - 115, 128, 0, 191, 0, 0, - 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 66, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 10, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 12, 3, - 0, 0, 1, 0, 0, 0, - 184, 0, 0, 0, 4, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 225, 2, 0, 0, - 156, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 165, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 1, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 168, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 2, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 83, 97, 109, - 112, 108, 101, 114, 0, 116, - 89, 0, 116, 67, 98, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 172, 0, 0, 0, 11, 0, - 0, 0, 208, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 216, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 228, 1, - 0, 0, 0, 0, 0, 0, - 244, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 4, 2, - 0, 0, 0, 0, 0, 0, - 20, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 36, 2, - 0, 0, 0, 0, 0, 0, - 52, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 2, 0, 0, 0, 68, 2, - 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 100, 2, - 0, 0, 0, 0, 0, 0, - 116, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 100, 2, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 228, 1, - 0, 0, 0, 0, 0, 0, - 148, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 164, 2, - 0, 0, 0, 0, 0, 0, - 180, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 164, 2, - 0, 0, 0, 0, 0, 0, - 191, 2, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 100, 2, - 0, 0, 0, 0, 0, 0, - 206, 2, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 100, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, 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 -}; -ShaderBytes sNV12Shader = { NV12Shader, sizeof(NV12Shader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4x4 mMaskTransform; // Offset: 176 Size: 64 -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 [unused] -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 12 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c15, 1, 0, 0, 0 - dcl_texcoord v0 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c2 - mad r0, c1, r0.x, r1 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - mul r1.xy, r0.y, c12 - mad r1.xy, c11, r0.x, r1 - mad r1.xy, c13, r0.z, r1 - add r1.xy, r1, c14 - mov r1.z, c15.x - mul oT1.xyz, r0.w, r1 - add r0, r0, -c8 - mad oT0.xy, v0, c9.zwzw, c9 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - -// approximately 21 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[15], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o2.xyz -dcl_temps 4 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r1.xyz, r0.xyzx, r0.wwww -mov r1.w, r0.w -add r2.xyzw, r1.xyzw, -cb0[8].xyzw -mul r1.xyz, r2.wwww, r2.xyzx -mul r3.xyzw, r1.yyyy, cb0[5].xyzw -mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw -mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw -mad o0.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -div r0.xyzw, r0.xyzw, r1.wwww -mul r1.xy, r0.yyyy, cb0[12].xyxx -mad r0.xy, cb0[11].xyxx, r0.xxxx, r1.xyxx -mad r0.xy, cb0[13].xyxx, r0.zzzz, r0.xyxx -mad r0.xy, cb0[14].xyxx, r0.wwww, r0.xyxx -mov r0.z, l(1.000000) -mul o2.xyz, r1.wwww, r0.xyzx -ret -// Approximately 21 instruction slots used -#endif - -const BYTE LayerQuadMaskVS[] = -{ - 68, 88, 66, 67, 111, 249, - 41, 41, 38, 248, 53, 250, - 5, 230, 67, 13, 246, 34, - 179, 140, 1, 0, 0, 0, - 224, 8, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 20, 2, 0, 0, 32, 5, - 0, 0, 156, 5, 0, 0, - 60, 8, 0, 0, 112, 8, - 0, 0, 65, 111, 110, 57, - 212, 1, 0, 0, 212, 1, - 0, 0, 0, 2, 254, 255, - 148, 1, 0, 0, 64, 0, - 0, 0, 2, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 0, 0, 36, 0, - 1, 0, 60, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 12, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 15, 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, - 4, 0, 0, 4, 0, 0, - 3, 128, 0, 0, 228, 144, - 10, 0, 238, 160, 10, 0, - 228, 160, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 2, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 1, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 3, 0, 228, 160, - 6, 0, 0, 2, 1, 0, - 1, 128, 0, 0, 255, 128, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 1, 0, 0, 128, 5, 0, - 0, 3, 1, 0, 3, 128, - 0, 0, 85, 128, 12, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 3, 128, 11, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 3, 128, - 13, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 3, 128, 1, 0, 228, 128, - 14, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 4, 128, - 15, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 7, 224, - 0, 0, 255, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 8, 0, 228, 161, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 9, 0, 238, 160, 9, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 255, 128, 0, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 85, 128, - 5, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 15, 128, - 4, 0, 228, 160, 0, 0, - 0, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 15, 128, 6, 0, 228, 160, - 0, 0, 170, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 7, 0, - 228, 160, 0, 0, 255, 128, - 1, 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, - 255, 255, 0, 0, 83, 72, - 68, 82, 4, 3, 0, 0, - 64, 0, 1, 0, 193, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 0, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 2, 0, 0, 0, 104, 0, - 0, 2, 4, 0, 0, 0, - 50, 0, 0, 11, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 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, 70, 142, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 3, 0, - 0, 0, 86, 5, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 14, 0, 0, 7, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 50, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 50, 0, 0, 10, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 21, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 152, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 112, 2, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 242, 1, - 0, 0, 240, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 5, 2, - 0, 0, 48, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 17, 2, - 0, 0, 64, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, - 0, 0, 0, 0, 48, 2, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 96, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 96, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 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, 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, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 171, 171, 171, - 79, 83, 71, 78, 104, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 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, 92, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 7, 8, 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 -}; -ShaderBytes sLayerQuadMaskVS = { LayerQuadMaskVS, sizeof(LayerQuadMaskVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 176 Size: 64 -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 [unused] -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) -// c9 cb0 11 4 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c13, 1, 0, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - mul r0, v0.y, c2 - mad r0, c1, v0.x, r0 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - mul r1.xy, r0.y, c10 - mad r1.xy, c9, r0.x, r1 - mad r1.xy, c11, r0.z, r1 - add r1.xy, r1, c12 - mov r1.z, c13.x - mul oT1.xyz, r0.w, r1 - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT0.xy, v1 - -// approximately 20 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[15], immediateIndexed -dcl_input v0.xy -dcl_input v1.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o2.xyz -dcl_temps 4 -mul r0.xyzw, v0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r1.xyz, r0.xyzx, r0.wwww -mov r1.w, r0.w -add r2.xyzw, r1.xyzw, -cb0[8].xyzw -mul r1.xyz, r2.wwww, r2.xyzx -mul r3.xyzw, r1.yyyy, cb0[5].xyzw -mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw -mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw -mad o0.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw -mov o1.xy, v1.xyxx -div r0.xyzw, r0.xyzw, r1.wwww -mul r1.xy, r0.yyyy, cb0[12].xyxx -mad r0.xy, cb0[11].xyxx, r0.xxxx, r1.xyxx -mad r0.xy, cb0[13].xyxx, r0.zzzz, r0.xyxx -mad r0.xy, cb0[14].xyxx, r0.wwww, r0.xyxx -mov r0.z, l(1.000000) -mul o2.xyz, r1.wwww, r0.xyzx -ret -// Approximately 20 instruction slots used -#endif - -const BYTE LayerDynamicMaskVS[] = -{ - 68, 88, 66, 67, 157, 241, - 152, 245, 122, 161, 230, 158, - 210, 56, 70, 92, 47, 199, - 58, 136, 1, 0, 0, 0, - 196, 8, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 16, 2, 0, 0, 228, 4, - 0, 0, 96, 5, 0, 0, - 0, 8, 0, 0, 84, 8, - 0, 0, 65, 111, 110, 57, - 208, 1, 0, 0, 208, 1, - 0, 0, 0, 2, 254, 255, - 132, 1, 0, 0, 76, 0, - 0, 0, 3, 0, 36, 0, - 0, 0, 72, 0, 0, 0, - 72, 0, 0, 0, 36, 0, - 1, 0, 72, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 6, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 4, 0, 9, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 13, 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, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 85, 144, - 2, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 1, 0, 228, 160, 0, 0, - 0, 144, 0, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 3, 0, 228, 160, 6, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 255, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 0, 128, 5, 0, 0, 3, - 1, 0, 3, 128, 0, 0, - 85, 128, 10, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 9, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 3, 128, 11, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 3, 128, - 1, 0, 228, 128, 12, 0, - 228, 160, 1, 0, 0, 2, - 1, 0, 4, 128, 13, 0, - 0, 160, 5, 0, 0, 3, - 1, 0, 7, 224, 0, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 8, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 255, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 4, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 255, 128, 1, 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, 3, 224, 1, 0, - 228, 144, 255, 255, 0, 0, - 83, 72, 68, 82, 204, 2, - 0, 0, 64, 0, 1, 0, - 179, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 2, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 86, 21, 16, 0, - 0, 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, 70, 142, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 16, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 3, 0, - 0, 0, 86, 5, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 14, 0, 0, 7, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 50, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 50, 0, 0, 10, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 20, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 152, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 112, 2, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 242, 1, - 0, 0, 240, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 5, 2, - 0, 0, 48, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 17, 2, - 0, 0, 64, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, - 0, 0, 0, 0, 48, 2, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 96, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 96, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 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, 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, 3, 3, 0, 0, - 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 79, 83, 71, 78, - 104, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, - 92, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 8, 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 -}; -ShaderBytes sLayerDynamicMaskVS = { LayerDynamicMaskVS, sizeof(LayerDynamicMaskVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 -// float fLayerOpacity; // Offset: 16 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 0 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t1.xyz - dcl_2d s0 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r0, r0, s0 - mul r0, r0.x, c0 - mov oC0, r0 - -// approximately 5 instruction slots used (1 texture, 4 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[1], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 1 -div r0.xy, v2.xyxx, v2.zzzz -sample r0.xyzw, r0.xyxx, t5.xyzw, s0 -mul o0.xyzw, r0.xxxx, cb0[0].xyzw -ret -// Approximately 4 instruction slots used -#endif - -const BYTE SolidColorShaderMask[] = -{ - 68, 88, 66, 67, 129, 99, - 8, 159, 198, 40, 71, 109, - 168, 226, 159, 169, 62, 65, - 26, 148, 1, 0, 0, 0, - 172, 5, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 220, 0, 0, 0, 156, 1, - 0, 0, 24, 2, 0, 0, - 8, 5, 0, 0, 120, 5, - 0, 0, 65, 111, 110, 57, - 156, 0, 0, 0, 156, 0, - 0, 0, 0, 2, 255, 255, - 104, 0, 0, 0, 52, 0, - 0, 0, 1, 0, 40, 0, - 0, 0, 52, 0, 0, 0, - 52, 0, 1, 0, 36, 0, - 0, 0, 52, 0, 5, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 7, 176, - 31, 0, 0, 2, 0, 0, - 0, 144, 0, 8, 15, 160, - 6, 0, 0, 2, 0, 0, - 8, 128, 1, 0, 170, 176, - 5, 0, 0, 3, 0, 0, - 3, 128, 0, 0, 255, 128, - 1, 0, 228, 176, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 128, 0, 0, 228, 160, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 184, 0, 0, 0, - 64, 0, 0, 0, 46, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 5, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 114, 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, - 14, 0, 0, 7, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 70, 126, 16, 0, 5, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 4, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 232, 2, 0, 0, 1, 0, - 0, 0, 148, 0, 0, 0, - 3, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 255, 255, - 0, 1, 0, 0, 189, 2, - 0, 0, 124, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 133, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 5, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 139, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 83, 97, 109, - 112, 108, 101, 114, 0, 116, - 77, 97, 115, 107, 0, 36, - 71, 108, 111, 98, 97, 108, - 115, 0, 139, 0, 0, 0, - 11, 0, 0, 0, 172, 0, - 0, 0, 144, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 180, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 192, 1, 0, 0, 0, 0, - 0, 0, 208, 1, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 224, 1, 0, 0, 0, 0, - 0, 0, 240, 1, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 16, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 0, 0, - 32, 2, 0, 0, 0, 0, - 0, 0, 48, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 80, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 92, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 192, 1, 0, 0, 0, 0, - 0, 0, 112, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 0, 0, - 0, 0, 144, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 0, 0, - 0, 0, 155, 2, 0, 0, - 16, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 170, 2, 0, 0, - 80, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 109, - 77, 97, 115, 107, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 109, 66, 97, 99, - 107, 100, 114, 111, 112, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 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, 171, 171, 171, 73, 83, - 71, 78, 104, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 92, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 7, 7, - 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, - 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 -}; -ShaderBytes sSolidColorShaderMask = { SolidColorShaderMask, sizeof(SolidColorShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r1, t0, s0 - texld r0, r0, s1 - mul r1.xyz, r1, c0.x - mov r1.w, c0.x - mul r0, r0.x, r1 - mov oC0, r0 - -// approximately 8 instruction slots used (2 texture, 6 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 2 -sample r0.xyzw, v1.xyxx, t0.xyzw, s0 -mul r0.xyz, r0.xyzx, cb0[1].xxxx -div r1.xy, v2.xyxx, v2.zzzz -sample r1.xyzw, r1.xyxx, t5.xyzw, s0 -mov r0.w, cb0[1].x -mul o0.xyzw, r0.xyzw, r1.xxxx -ret -// Approximately 7 instruction slots used -#endif - -const BYTE RGBShaderMask[] = -{ - 68, 88, 66, 67, 124, 138, - 74, 104, 71, 169, 228, 139, - 154, 1, 86, 48, 221, 22, - 154, 18, 1, 0, 0, 0, - 144, 6, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 36, 1, 0, 0, 88, 2, - 0, 0, 212, 2, 0, 0, - 236, 5, 0, 0, 92, 6, - 0, 0, 65, 111, 110, 57, - 228, 0, 0, 0, 228, 0, - 0, 0, 0, 2, 255, 255, - 172, 0, 0, 0, 56, 0, - 0, 0, 1, 0, 44, 0, - 0, 0, 56, 0, 0, 0, - 56, 0, 2, 0, 36, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 5, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 7, 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, 6, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 0, 0, 3, 128, - 0, 0, 255, 128, 1, 0, - 228, 176, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 1, 8, 228, 160, 5, 0, - 0, 3, 1, 0, 7, 128, - 1, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 1, 0, 8, 128, 0, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 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, 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, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 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, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 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, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 14, 0, 0, 7, 50, 0, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 0, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 5, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 6, 130, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 7, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 16, 3, 0, 0, - 1, 0, 0, 0, 188, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 229, 2, 0, 0, 156, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 165, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 170, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 176, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 82, 71, - 66, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 171, 171, 176, 0, 0, 0, - 11, 0, 0, 0, 212, 0, - 0, 0, 144, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 220, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 248, 1, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 40, 2, 0, 0, 0, 0, - 0, 0, 56, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 0, 0, - 72, 2, 0, 0, 0, 0, - 0, 0, 88, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 120, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 132, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 152, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 184, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 195, 2, 0, 0, - 16, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 210, 2, 0, 0, - 80, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 109, - 77, 97, 115, 107, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 109, 66, 97, 99, - 107, 100, 114, 111, 112, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 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, 171, 171, 171, 73, 83, - 71, 78, 104, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 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, 7, 7, - 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, - 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 -}; -ShaderBytes sRGBShaderMask = { RGBShaderMask, sizeof(RGBShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r1, t0, s0 - texld r0, r0, s1 - mul r1, r1, c0.x - mul r0, r0.x, r1 - mov oC0, r0 - -// approximately 7 instruction slots used (2 texture, 5 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 2 -div r0.xy, v2.xyxx, v2.zzzz -sample r0.xyzw, r0.xyxx, t5.xyzw, s0 -sample r1.xyzw, v1.xyxx, t0.xyzw, s0 -mul r1.xyzw, r1.xyzw, cb0[1].xxxx -mul o0.xyzw, r0.xxxx, r1.xyzw -ret -// Approximately 6 instruction slots used -#endif - -const BYTE RGBAShaderMask[] = -{ - 68, 88, 66, 67, 195, 156, - 68, 53, 118, 57, 21, 40, - 104, 132, 202, 230, 53, 208, - 14, 15, 1, 0, 0, 0, - 108, 6, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 24, 1, 0, 0, 52, 2, - 0, 0, 176, 2, 0, 0, - 200, 5, 0, 0, 56, 6, - 0, 0, 65, 111, 110, 57, - 216, 0, 0, 0, 216, 0, - 0, 0, 0, 2, 255, 255, - 160, 0, 0, 0, 56, 0, - 0, 0, 1, 0, 44, 0, - 0, 0, 56, 0, 0, 0, - 56, 0, 2, 0, 36, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 5, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 7, 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, 6, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 0, 0, 3, 128, - 0, 0, 255, 128, 1, 0, - 228, 176, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 1, 8, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 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, 20, 1, 0, 0, - 64, 0, 0, 0, 69, 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, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 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, 14, 0, - 0, 7, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 70, 126, - 16, 0, 5, 0, 0, 0, - 0, 96, 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, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 6, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 16, 3, 0, 0, - 1, 0, 0, 0, 188, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 229, 2, 0, 0, 156, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 165, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 170, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 176, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 82, 71, - 66, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 171, 171, 176, 0, 0, 0, - 11, 0, 0, 0, 212, 0, - 0, 0, 144, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 220, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 248, 1, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 40, 2, 0, 0, 0, 0, - 0, 0, 56, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 0, 0, - 72, 2, 0, 0, 0, 0, - 0, 0, 88, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 120, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 132, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 152, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 184, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 195, 2, 0, 0, - 16, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 210, 2, 0, 0, - 80, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 109, - 77, 97, 115, 107, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 109, 66, 97, 99, - 107, 100, 114, 111, 112, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 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, 171, 171, 171, 73, 83, - 71, 78, 104, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 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, 7, 7, - 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, - 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 -}; -ShaderBytes sRGBAShaderMask = { RGBAShaderMask, sizeof(RGBAShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tCr texture float4 2d t3 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t1 -// s1 s0 t2 -// s2 s0 t3 -// s3 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c4, -0.0627499968, -0.50195998, 1, 0 - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - dcl_2d s3 - mov r0.w, c4.z - texld r1, t0, s1 - texld r2, t0, s0 - add r2.x, r2.x, c4.x - add r2.y, r1.x, c4.y - rcp r2.w, t1.z - mul r1.xy, r2.w, t1 - texld r3, t0, s2 - texld r1, r1, s3 - add r2.z, r3.x, c4.y - dp3 r0.x, c1, r2 - dp3 r0.y, c2, r2 - dp3 r0.z, c3, r2 - mul r0, r0, c0.x - mul r0, r1.x, r0 - mov oC0, r0 - -// approximately 16 instruction slots used (4 texture, 12 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 3 -mov r0.w, l(1.000000) -sample r1.xyzw, v1.xyxx, t1.xyzw, s0 -add r1.x, r1.x, l(-0.062750) -sample r2.xyzw, v1.xyxx, t2.xyzw, s0 -add r1.y, r2.x, l(-0.501960) -sample r2.xyzw, v1.xyxx, t3.xyzw, s0 -add r1.z, r2.x, l(-0.501960) -dp3 r0.x, cb0[3].xyzx, r1.xyzx -dp3 r0.y, cb0[4].xyzx, r1.xyzx -dp3 r0.z, cb0[5].xyzx, r1.xyzx -mul r0.xyzw, r0.xyzw, cb0[1].xxxx -div r1.xy, v2.xyxx, v2.zzzz -sample r1.xyzw, r1.xyxx, t5.xyzw, s0 -mul o0.xyzw, r0.xyzw, r1.xxxx -ret -// Approximately 15 instruction slots used -#endif - -const BYTE YCbCrShaderMask[] = -{ - 68, 88, 66, 67, 198, 45, - 222, 137, 253, 124, 14, 38, - 179, 174, 218, 37, 60, 100, - 152, 197, 1, 0, 0, 0, - 176, 8, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 232, 1, 0, 0, 52, 4, - 0, 0, 176, 4, 0, 0, - 12, 8, 0, 0, 124, 8, - 0, 0, 65, 111, 110, 57, - 168, 1, 0, 0, 168, 1, - 0, 0, 0, 2, 255, 255, - 92, 1, 0, 0, 76, 0, - 0, 0, 2, 0, 52, 0, - 0, 0, 76, 0, 0, 0, - 76, 0, 4, 0, 36, 0, - 0, 0, 76, 0, 1, 0, - 0, 0, 2, 0, 1, 0, - 3, 0, 2, 0, 5, 0, - 3, 0, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 3, 0, 1, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 81, 0, 0, 5, 4, 0, - 15, 160, 18, 131, 128, 189, - 115, 128, 0, 191, 0, 0, - 128, 63, 0, 0, 0, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 7, 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, - 31, 0, 0, 2, 0, 0, - 0, 144, 2, 8, 15, 160, - 31, 0, 0, 2, 0, 0, - 0, 144, 3, 8, 15, 160, - 1, 0, 0, 2, 0, 0, - 8, 128, 4, 0, 170, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 176, - 1, 8, 228, 160, 66, 0, - 0, 3, 2, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 2, 0, 0, 3, - 2, 0, 1, 128, 2, 0, - 0, 128, 4, 0, 0, 160, - 2, 0, 0, 3, 2, 0, - 2, 128, 1, 0, 0, 128, - 4, 0, 85, 160, 6, 0, - 0, 2, 2, 0, 8, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 1, 0, 3, 128, - 2, 0, 255, 128, 1, 0, - 228, 176, 66, 0, 0, 3, - 3, 0, 15, 128, 0, 0, - 228, 176, 2, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 1, 0, 228, 128, - 3, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 4, 128, - 3, 0, 0, 128, 4, 0, - 85, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 160, 2, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 2, 128, 2, 0, 228, 160, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 3, 0, 228, 160, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 1, 0, 0, 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, - 68, 2, 0, 0, 64, 0, - 0, 0, 145, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 1, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 2, 0, - 0, 0, 85, 85, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 3, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 3, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 69, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 1, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 18, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 1, 64, 0, 0, - 18, 131, 128, 189, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 2, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 34, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 115, 128, - 0, 191, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 3, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 66, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 115, 128, 0, 191, - 16, 0, 0, 8, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 14, 0, 0, 7, - 50, 0, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 166, 26, - 16, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 0, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 5, 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, 6, 0, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 15, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 84, 3, - 0, 0, 1, 0, 0, 0, - 0, 1, 0, 0, 6, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 41, 3, 0, 0, - 220, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 229, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 1, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 232, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 2, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 236, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 3, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 240, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 246, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 116, 89, 0, - 116, 67, 98, 0, 116, 67, - 114, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 246, 0, 0, 0, 11, 0, - 0, 0, 24, 1, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 32, 2, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 0, 0, 0, 0, - 60, 2, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 76, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 124, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 2, 0, 0, 0, 140, 2, - 0, 0, 0, 0, 0, 0, - 156, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 188, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 0, 0, 0, 0, - 220, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 2, - 0, 0, 0, 0, 0, 0, - 252, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 2, - 0, 0, 0, 0, 0, 0, - 7, 3, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 22, 3, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 104, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, 7, 7, 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, 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 -}; -ShaderBytes sYCbCrShaderMask = { YCbCrShaderMask, sizeof(YCbCrShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t1 -// s1 s0 t2 -// s2 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c4, -0.0627499968, -0.50195998, 1, 0 - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - mov r0.w, c4.z - texld r1, t0, s1 - texld r2, t0, s0 - add r2.x, r2.x, c4.x - add r2.yz, r1.xxyw, c4.y - dp3 r0.x, c1, r2 - dp3 r0.y, c2, r2 - dp3 r0.z, c3, r2 - mul r0, r0, c0.x - rcp r1.x, t1.z - mul r1.xy, r1.x, t1 - texld r1, r1, s2 - mul r0, r0, r1.x - mov oC0, r0 - -// approximately 14 instruction slots used (3 texture, 11 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 3 -mov r0.w, l(1.000000) -sample r1.xyzw, v1.xyxx, t1.xyzw, s0 -add r1.x, r1.x, l(-0.062750) -sample r2.xyzw, v1.xyxx, t2.xyzw, s0 -add r1.yz, r2.xxyx, l(0.000000, -0.501960, -0.501960, 0.000000) -dp3 r0.x, cb0[3].xyzx, r1.xyzx -dp3 r0.y, cb0[4].xyzx, r1.xyzx -dp3 r0.z, cb0[5].xyzx, r1.xyzx -mul r0.xyzw, r0.xyzw, cb0[1].xxxx -div r1.xy, v2.xyxx, v2.zzzz -sample r1.xyzw, r1.xyxx, t5.xyzw, s0 -mul o0.xyzw, r0.xyzw, r1.xxxx -ret -// Approximately 13 instruction slots used -#endif - -const BYTE NV12ShaderMask[] = -{ - 68, 88, 66, 67, 225, 251, - 182, 201, 43, 219, 84, 65, - 169, 202, 234, 24, 151, 167, - 30, 254, 1, 0, 0, 0, - 24, 8, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 184, 1, 0, 0, 192, 3, - 0, 0, 60, 4, 0, 0, - 116, 7, 0, 0, 228, 7, - 0, 0, 65, 111, 110, 57, - 120, 1, 0, 0, 120, 1, - 0, 0, 0, 2, 255, 255, - 48, 1, 0, 0, 72, 0, - 0, 0, 2, 0, 48, 0, - 0, 0, 72, 0, 0, 0, - 72, 0, 3, 0, 36, 0, - 0, 0, 72, 0, 1, 0, - 0, 0, 2, 0, 1, 0, - 5, 0, 2, 0, 0, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 4, 0, 15, 160, 18, 131, - 128, 189, 115, 128, 0, 191, - 0, 0, 128, 63, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 7, 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, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 4, 0, - 170, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 1, 128, - 2, 0, 0, 128, 4, 0, - 0, 160, 2, 0, 0, 3, - 2, 0, 6, 128, 1, 0, - 208, 128, 4, 0, 85, 160, - 8, 0, 0, 3, 0, 0, - 1, 128, 1, 0, 228, 160, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 2, 128, - 2, 0, 228, 160, 2, 0, - 228, 128, 8, 0, 0, 3, - 0, 0, 4, 128, 3, 0, - 228, 160, 2, 0, 228, 128, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 6, 0, - 0, 2, 1, 0, 1, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 1, 0, 3, 128, - 1, 0, 0, 128, 1, 0, - 228, 176, 66, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 2, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 1, 0, 0, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 0, 2, 0, 0, 64, 0, - 0, 0, 128, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 1, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 2, 0, - 0, 0, 85, 85, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 5, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 3, 0, 0, 0, - 54, 0, 0, 5, 130, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 1, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 18, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 1, 64, - 0, 0, 18, 131, 128, 189, - 69, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 2, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 98, 0, - 16, 0, 1, 0, 0, 0, - 6, 1, 16, 0, 2, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 115, 128, - 0, 191, 115, 128, 0, 191, - 0, 0, 0, 0, 16, 0, - 0, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 34, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 14, 0, 0, 7, 50, 0, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 0, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 5, 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, - 6, 0, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 13, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 48, 3, 0, 0, - 1, 0, 0, 0, 220, 0, - 0, 0, 5, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 5, 3, 0, 0, 188, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 197, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 1, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 200, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 2, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 204, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 5, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 210, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 83, 97, 109, - 112, 108, 101, 114, 0, 116, - 89, 0, 116, 67, 98, 0, - 116, 77, 97, 115, 107, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 210, 0, - 0, 0, 11, 0, 0, 0, - 244, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 252, 1, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 8, 2, 0, 0, - 0, 0, 0, 0, 24, 2, - 0, 0, 16, 0, 0, 0, - 4, 0, 0, 0, 2, 0, - 0, 0, 40, 2, 0, 0, - 0, 0, 0, 0, 56, 2, - 0, 0, 32, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 72, 2, 0, 0, - 0, 0, 0, 0, 88, 2, - 0, 0, 48, 0, 0, 0, - 44, 0, 0, 0, 2, 0, - 0, 0, 104, 2, 0, 0, - 0, 0, 0, 0, 120, 2, - 0, 0, 96, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 136, 2, 0, 0, - 0, 0, 0, 0, 152, 2, - 0, 0, 160, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 136, 2, 0, 0, - 0, 0, 0, 0, 164, 2, - 0, 0, 224, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 8, 2, 0, 0, - 0, 0, 0, 0, 184, 2, - 0, 0, 240, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 2, 0, 0, - 0, 0, 0, 0, 216, 2, - 0, 0, 0, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 2, 0, 0, - 0, 0, 0, 0, 227, 2, - 0, 0, 16, 1, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 136, 2, 0, 0, - 0, 0, 0, 0, 242, 2, - 0, 0, 80, 1, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 136, 2, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 67, 111, - 108, 111, 114, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 66, - 108, 101, 110, 100, 67, 111, - 110, 102, 105, 103, 0, 171, - 171, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 89, 117, 118, 67, 111, - 108, 111, 114, 77, 97, 116, - 114, 105, 120, 0, 2, 0, - 3, 0, 3, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 76, 97, 121, - 101, 114, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 80, - 114, 111, 106, 101, 99, 116, - 105, 111, 110, 0, 118, 82, - 101, 110, 100, 101, 114, 84, - 97, 114, 103, 101, 116, 79, - 102, 102, 115, 101, 116, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 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, 171, 171, 171, - 73, 83, 71, 78, 104, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 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, - 7, 7, 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, 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 -}; -ShaderBytes sNV12ShaderMask = { NV12ShaderMask, sizeof(NV12ShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tRGBWhite texture float4 2d t4 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t4 -// s2 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r0, r0, s2 - mul r0.x, r0.x, c0.x - texld r1, t0, s0 - texld r2, t0, s1 - add r2, r1, -r2 - add r2, r2, c1.x - mov r1.w, r2.y - mul r2, r0.x, r2 - mul r0, r0.x, r1 - mov oC0, r0 - mov oC1, r2 - -// approximately 13 instruction slots used (3 texture, 10 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t4 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 3 -div r0.xy, v2.xyxx, v2.zzzz -sample r0.xyzw, r0.xyxx, t5.xyzw, s0 -mul r0.x, r0.x, cb0[1].x -sample r1.xyzw, v1.xyxx, t4.xyzw, s0 -sample r2.xyzw, v1.xyxx, t0.xyzw, s0 -add r1.xyzw, -r1.xyzw, r2.xyzw -add r1.xyzw, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) -mov r2.w, r1.y -mul o1.xyzw, r0.xxxx, r1.xyzw -mul o0.xyzw, r0.xxxx, r2.xyzw -ret -// Approximately 11 instruction slots used -#endif - -const BYTE ComponentAlphaShaderMask[] = -{ - 68, 88, 66, 67, 199, 32, - 192, 240, 187, 195, 33, 234, - 91, 15, 165, 212, 46, 102, - 50, 248, 1, 0, 0, 0, - 228, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 152, 1, 0, 0, 108, 3, - 0, 0, 232, 3, 0, 0, - 40, 7, 0, 0, 152, 7, - 0, 0, 65, 111, 110, 57, - 88, 1, 0, 0, 88, 1, - 0, 0, 0, 2, 255, 255, - 28, 1, 0, 0, 60, 0, - 0, 0, 1, 0, 48, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 3, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 0, 0, 4, 0, 1, 0, - 5, 0, 2, 0, 0, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 1, 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, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 7, 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, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 6, 0, 0, 2, - 0, 0, 8, 128, 1, 0, - 170, 176, 5, 0, 0, 3, - 0, 0, 3, 128, 0, 0, - 255, 128, 1, 0, 228, 176, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 2, 8, 228, 160, 5, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 0, 0, - 0, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 228, 176, - 1, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 15, 128, - 1, 0, 228, 128, 2, 0, - 228, 129, 2, 0, 0, 3, - 2, 0, 15, 128, 2, 0, - 228, 128, 1, 0, 0, 160, - 1, 0, 0, 2, 1, 0, - 8, 128, 2, 0, 85, 128, - 5, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 0, 128, - 2, 0, 228, 128, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 0, 128, 1, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 1, 0, 0, 2, - 1, 8, 15, 128, 2, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 204, 1, - 0, 0, 64, 0, 0, 0, - 115, 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, - 88, 24, 0, 4, 0, 112, - 16, 0, 4, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 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, 104, 0, 0, 2, - 3, 0, 0, 0, 14, 0, - 0, 7, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 70, 126, - 16, 0, 5, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 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, 4, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 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, 0, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 2, 0, 0, 0, - 0, 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, 128, 63, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 26, 0, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 242, 32, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 11, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 56, 3, 0, 0, - 1, 0, 0, 0, 228, 0, - 0, 0, 5, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 13, 3, 0, 0, 188, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 197, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 202, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 4, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 212, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 5, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 83, 97, 109, - 112, 108, 101, 114, 0, 116, - 82, 71, 66, 0, 116, 82, - 71, 66, 87, 104, 105, 116, - 101, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 218, 0, 0, 0, 11, 0, - 0, 0, 252, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 2, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 16, 2, - 0, 0, 0, 0, 0, 0, - 32, 2, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 48, 2, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 0, 0, 0, 0, - 96, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 112, 2, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 160, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 172, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 16, 2, - 0, 0, 0, 0, 0, 0, - 192, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 208, 2, - 0, 0, 0, 0, 0, 0, - 224, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 208, 2, - 0, 0, 0, 0, 0, 0, - 235, 2, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 250, 2, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 104, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 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, 7, 7, 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, 68, 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, 56, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171 -}; -ShaderBytes sComponentAlphaShaderMask = { ComponentAlphaShaderMask, sizeof(ComponentAlphaShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4x4 mMaskTransform; // Offset: 176 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 8 ( FLT, FLT, FLT, FLT) -// c11 cb0 15 2 ( FLT, FLT, FLT, FLT) -// c13 cb0 18 1 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c14, 1, 0.5, 0, 0 - dcl_texcoord v0 - mad oT0.xy, v0, c9.zwzw, c9 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c2 - mad r0, c1, r0.x, r1 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - add r1.xy, r0, c14.x - mad r1.y, r1.y, -c14.y, c14.x - mul r1.x, r1.x, c14.y - mul r1.yz, r1.y, c12.xyxw - mad r1.xy, c11.yxzw, r1.x, r1.yzzw - add oT0.zw, r1.xyxy, c13.xyyx - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT1.xyz, c14.z - -// approximately 22 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[19], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o1.zw -dcl_output o2.xyz -dcl_temps 2 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r0.xyz, r0.xyzx, r0.wwww -add r0.xyzw, r0.xyzw, -cb0[8].xyzw -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyzw, r0.yyyy, cb0[5].xyzw -mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw -mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw -mad r0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw -mov o0.xyzw, r0.xyzw -add r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) -mad r0.y, -r0.y, l(0.500000), l(1.000000) -mul r0.x, r0.x, l(0.500000) -mul r0.yz, r0.yyyy, cb0[16].xxyx -mad r0.xy, cb0[15].xyxx, r0.xxxx, r0.yzyy -add o1.zw, r0.xxxy, cb0[18].xxxy -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -mov o2.xyz, l(0,0,0,0) -ret -// Approximately 21 instruction slots used -#endif - -const BYTE LayerQuadBlendVS[] = -{ - 68, 88, 66, 67, 207, 72, - 143, 79, 197, 121, 158, 62, - 176, 186, 8, 33, 105, 197, - 252, 35, 1, 0, 0, 0, - 60, 9, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 60, 2, 0, 0, 100, 5, - 0, 0, 224, 5, 0, 0, - 128, 8, 0, 0, 180, 8, - 0, 0, 65, 111, 110, 57, - 252, 1, 0, 0, 252, 1, - 0, 0, 0, 2, 254, 255, - 164, 1, 0, 0, 88, 0, - 0, 0, 4, 0, 36, 0, - 0, 0, 84, 0, 0, 0, - 84, 0, 0, 0, 36, 0, - 1, 0, 84, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 8, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 2, 0, 11, 0, - 0, 0, 0, 0, 0, 0, - 18, 0, 1, 0, 13, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 14, 0, - 15, 160, 0, 0, 128, 63, - 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 9, 0, 238, 160, 9, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 128, 0, 0, - 228, 144, 10, 0, 238, 160, - 10, 0, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 2, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 1, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 3, 0, - 228, 160, 6, 0, 0, 2, - 1, 0, 1, 128, 0, 0, - 255, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 0, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 8, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 255, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 4, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 3, 128, 0, 0, 228, 128, - 14, 0, 0, 160, 4, 0, - 0, 4, 1, 0, 2, 128, - 1, 0, 85, 128, 14, 0, - 85, 161, 14, 0, 0, 160, - 5, 0, 0, 3, 1, 0, - 1, 128, 1, 0, 0, 128, - 14, 0, 85, 160, 5, 0, - 0, 3, 1, 0, 6, 128, - 1, 0, 85, 128, 12, 0, - 196, 160, 4, 0, 0, 4, - 1, 0, 3, 128, 11, 0, - 225, 160, 1, 0, 0, 128, - 1, 0, 233, 128, 2, 0, - 0, 3, 0, 0, 12, 224, - 1, 0, 68, 128, 13, 0, - 20, 160, 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, 1, 0, 7, 224, - 14, 0, 170, 160, 255, 255, - 0, 0, 83, 72, 68, 82, - 32, 3, 0, 0, 64, 0, - 1, 0, 200, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 194, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 2, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 50, 0, - 0, 11, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 5, 16, 0, 0, 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, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 8, 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, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 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, 0, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 34, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 63, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 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, 63, 56, 0, 0, 8, - 98, 0, 16, 0, 0, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 6, 129, - 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 150, 5, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 194, 32, 16, 0, 1, 0, - 0, 0, 6, 4, 16, 0, - 0, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 8, 114, 32, - 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, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 21, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 18, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 152, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 112, 2, 0, 0, 60, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 136, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 148, 1, 0, 0, 128, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 184, 1, 0, 0, 144, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 216, 1, 0, 0, 160, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 227, 1, 0, 0, 176, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 242, 1, 0, 0, 240, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 5, 2, 0, 0, 48, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 17, 2, 0, 0, 64, 1, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 32, 2, - 0, 0, 0, 0, 0, 0, - 48, 2, 0, 0, 80, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 80, 2, 0, 0, 96, 1, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 96, 2, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 0, 102, 76, 97, 121, 101, - 114, 67, 111, 108, 111, 114, - 0, 102, 76, 97, 121, 101, - 114, 79, 112, 97, 99, 105, - 116, 121, 0, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 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, 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, 3, 3, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 171, - 171, 171, 79, 83, 71, 78, - 128, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 116, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 3, 0, 0, - 116, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 8, 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 -}; -ShaderBytes sLayerQuadBlendVS = { LayerQuadBlendVS, sizeof(LayerQuadBlendVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4x4 mMaskTransform; // Offset: 176 Size: 64 -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 14 ( FLT, FLT, FLT, FLT) -// c17 cb0 18 1 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c18, 1, 0.5, 0, 0 - dcl_texcoord v0 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c2 - mad r0, c1, r0.x, r1 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - mul r1.xy, r0.y, c12 - mad r1.xy, c11, r0.x, r1 - mad r1.xy, c13, r0.z, r1 - add r1.xy, r1, c14 - mov r1.z, c18.x - mul oT1.xyz, r0.w, r1 - add r0, r0, -c8 - mad oT0.xy, v0, c9.zwzw, c9 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - add r1.xy, r0, c18.x - mad r1.y, r1.y, -c18.y, c18.x - mul r1.x, r1.x, c18.y - mul r1.yz, r1.y, c16.xyxw - mad r1.xy, c15.yxzw, r1.x, r1.yzzw - add oT0.zw, r1.xyxy, c17.xyyx - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - -// approximately 27 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[19], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o1.zw -dcl_output o2.xyz -dcl_temps 4 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r1.xyz, r0.xyzx, r0.wwww -mov r1.w, r0.w -add r2.xyzw, r1.xyzw, -cb0[8].xyzw -mul r1.xyz, r2.wwww, r2.xyzx -mul r3.xyzw, r1.yyyy, cb0[5].xyzw -mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw -mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw -mad r2.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw -mov o0.xyzw, r2.xyzw -add r1.xy, r2.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) -mad r1.y, -r1.y, l(0.500000), l(1.000000) -mul r1.x, r1.x, l(0.500000) -mul r1.yz, r1.yyyy, cb0[16].xxyx -mad r1.xy, cb0[15].xyxx, r1.xxxx, r1.yzyy -add o1.zw, r1.xxxy, cb0[18].xxxy -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -div r0.xyzw, r0.xyzw, r1.wwww -mul r1.xy, r0.yyyy, cb0[12].xyxx -mad r0.xy, cb0[11].xyxx, r0.xxxx, r1.xyxx -mad r0.xy, cb0[13].xyxx, r0.zzzz, r0.xyxx -mad r0.xy, cb0[14].xyxx, r0.wwww, r0.xyxx -mov r0.z, l(1.000000) -mul o2.xyz, r1.wwww, r0.xyzx -ret -// Approximately 28 instruction slots used -#endif - -const BYTE LayerQuadBlendMaskVS[] = -{ - 68, 88, 66, 67, 101, 175, - 99, 175, 232, 80, 218, 94, - 85, 210, 184, 122, 213, 6, - 188, 171, 1, 0, 0, 0, - 96, 10, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 136, 2, 0, 0, 136, 6, - 0, 0, 4, 7, 0, 0, - 164, 9, 0, 0, 216, 9, - 0, 0, 65, 111, 110, 57, - 72, 2, 0, 0, 72, 2, - 0, 0, 0, 2, 254, 255, - 252, 1, 0, 0, 76, 0, - 0, 0, 3, 0, 36, 0, - 0, 0, 72, 0, 0, 0, - 72, 0, 0, 0, 36, 0, - 1, 0, 72, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 14, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 18, 0, 1, 0, 17, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 18, 0, - 15, 160, 0, 0, 128, 63, - 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 4, 0, 0, 4, 0, 0, - 3, 128, 0, 0, 228, 144, - 10, 0, 238, 160, 10, 0, - 228, 160, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 2, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 1, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 3, 0, 228, 160, - 6, 0, 0, 2, 1, 0, - 1, 128, 0, 0, 255, 128, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 1, 0, 0, 128, 5, 0, - 0, 3, 1, 0, 3, 128, - 0, 0, 85, 128, 12, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 3, 128, 11, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 3, 128, - 13, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 3, 128, 1, 0, 228, 128, - 14, 0, 228, 160, 1, 0, - 0, 2, 1, 0, 4, 128, - 18, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 7, 224, - 0, 0, 255, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 8, 0, 228, 161, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 9, 0, 238, 160, 9, 0, - 228, 160, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 255, 128, 0, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 85, 128, - 5, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 15, 128, - 4, 0, 228, 160, 0, 0, - 0, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 15, 128, 6, 0, 228, 160, - 0, 0, 170, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 7, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 3, 128, - 0, 0, 228, 128, 18, 0, - 0, 160, 4, 0, 0, 4, - 1, 0, 2, 128, 1, 0, - 85, 128, 18, 0, 85, 161, - 18, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 1, 128, - 1, 0, 0, 128, 18, 0, - 85, 160, 5, 0, 0, 3, - 1, 0, 6, 128, 1, 0, - 85, 128, 16, 0, 196, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 15, 0, 225, 160, - 1, 0, 0, 128, 1, 0, - 233, 128, 2, 0, 0, 3, - 0, 0, 12, 224, 1, 0, - 68, 128, 17, 0, 20, 160, - 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, 255, 255, 0, 0, - 83, 72, 68, 82, 248, 3, - 0, 0, 64, 0, 1, 0, - 254, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 19, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 0, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 194, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 2, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 50, 0, 0, 11, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 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, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 3, 0, 0, 0, 86, 5, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 54, 0, 0, 5, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 0, 0, 0, 10, - 50, 0, 16, 0, 1, 0, - 0, 0, 70, 0, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 34, 0, - 16, 0, 1, 0, 0, 0, - 26, 0, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 63, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 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, - 0, 63, 56, 0, 0, 8, - 98, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 1, 0, 0, 0, 6, 129, - 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 1, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 150, 5, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 194, 32, 16, 0, 1, 0, - 0, 0, 6, 4, 16, 0, - 1, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 14, 0, 0, 7, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 50, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 50, 0, 0, 10, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 28, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 24, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 152, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 112, 2, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 242, 1, - 0, 0, 240, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 5, 2, - 0, 0, 48, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 17, 2, - 0, 0, 64, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, - 0, 0, 0, 0, 48, 2, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 96, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 96, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 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, 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, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 171, 171, 171, - 79, 83, 71, 78, 128, 0, - 0, 0, 4, 0, 0, 0, - 8, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 116, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 12, 0, 0, 116, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 12, 3, 0, 0, 116, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 7, 8, 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 -}; -ShaderBytes sLayerQuadBlendMaskVS = { LayerQuadBlendMaskVS, sizeof(LayerQuadBlendMaskVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 176 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) -// c9 cb0 15 2 ( FLT, FLT, FLT, FLT) -// c11 cb0 18 1 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c12, 1, 0.5, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - mul r0, v0.y, c2 - mad r0, c1, v0.x, r0 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - add r1.xy, r0, c12.x - mad r1.y, r1.y, -c12.y, c12.x - mul r1.x, r1.x, c12.y - mul r1.yz, r1.y, c10.xyxw - mad r1.xy, c9.yxzw, r1.x, r1.yzzw - add oT0.zw, r1.xyxy, c11.xyyx - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT0.xy, v1 - mov oT1.xyz, c12.z - -// approximately 21 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[19], immediateIndexed -dcl_input v0.xy -dcl_input v1.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o1.zw -dcl_output o2.xyz -dcl_temps 2 -mul r0.xyzw, v0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r0.xyz, r0.xyzx, r0.wwww -add r0.xyzw, r0.xyzw, -cb0[8].xyzw -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyzw, r0.yyyy, cb0[5].xyzw -mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw -mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw -mad r0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw -mov o0.xyzw, r0.xyzw -add r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) -mad r0.y, -r0.y, l(0.500000), l(1.000000) -mul r0.x, r0.x, l(0.500000) -mul r0.yz, r0.yyyy, cb0[16].xxyx -mad r0.xy, cb0[15].xyxx, r0.xxxx, r0.yzyy -add o1.zw, r0.xxxy, cb0[18].xxxy -mov o1.xy, v1.xyxx -mov o2.xyz, l(0,0,0,0) -ret -// Approximately 20 instruction slots used -#endif - -const BYTE LayerDynamicBlendVS[] = -{ - 68, 88, 66, 67, 98, 12, - 34, 96, 162, 46, 115, 4, - 36, 160, 126, 241, 221, 236, - 88, 223, 1, 0, 0, 0, - 20, 9, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 44, 2, 0, 0, 28, 5, - 0, 0, 152, 5, 0, 0, - 56, 8, 0, 0, 140, 8, - 0, 0, 65, 111, 110, 57, - 236, 1, 0, 0, 236, 1, - 0, 0, 0, 2, 254, 255, - 148, 1, 0, 0, 88, 0, - 0, 0, 4, 0, 36, 0, - 0, 0, 84, 0, 0, 0, - 84, 0, 0, 0, 36, 0, - 1, 0, 84, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 6, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 2, 0, 9, 0, - 0, 0, 0, 0, 0, 0, - 18, 0, 1, 0, 11, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 12, 0, - 15, 160, 0, 0, 128, 63, - 0, 0, 0, 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, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 85, 144, - 2, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 1, 0, 228, 160, 0, 0, - 0, 144, 0, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 3, 0, 228, 160, 6, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 255, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 0, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 8, 0, 228, 161, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 255, 128, - 0, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 5, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 15, 128, 4, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 15, 128, - 6, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 7, 0, 228, 160, - 0, 0, 255, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 3, 128, 0, 0, - 228, 128, 12, 0, 0, 160, - 4, 0, 0, 4, 1, 0, - 2, 128, 1, 0, 85, 128, - 12, 0, 85, 161, 12, 0, - 0, 160, 5, 0, 0, 3, - 1, 0, 1, 128, 1, 0, - 0, 128, 12, 0, 85, 160, - 5, 0, 0, 3, 1, 0, - 6, 128, 1, 0, 85, 128, - 10, 0, 196, 160, 4, 0, - 0, 4, 1, 0, 3, 128, - 9, 0, 225, 160, 1, 0, - 0, 128, 1, 0, 233, 128, - 2, 0, 0, 3, 0, 0, - 12, 224, 1, 0, 68, 128, - 11, 0, 20, 160, 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, - 3, 224, 1, 0, 228, 144, - 1, 0, 0, 2, 1, 0, - 7, 224, 12, 0, 170, 160, - 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, 19, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 0, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 194, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 114, 32, 16, 0, - 2, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 86, 21, 16, 0, 0, 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, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 6, 16, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 8, 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, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 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, 0, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 34, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 63, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 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, 63, 56, 0, 0, 8, - 98, 0, 16, 0, 0, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 6, 129, - 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 150, 5, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 194, 32, 16, 0, 1, 0, - 0, 0, 6, 4, 16, 0, - 0, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 54, 0, 0, 8, 114, 32, - 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, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 20, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 152, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 112, 2, 0, 0, 60, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 136, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 148, 1, 0, 0, 128, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 184, 1, 0, 0, 144, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 216, 1, 0, 0, 160, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 227, 1, 0, 0, 176, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 242, 1, 0, 0, 240, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 5, 2, 0, 0, 48, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 17, 2, 0, 0, 64, 1, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 32, 2, - 0, 0, 0, 0, 0, 0, - 48, 2, 0, 0, 80, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 80, 2, 0, 0, 96, 1, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 96, 2, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 0, 102, 76, 97, 121, 101, - 114, 67, 111, 108, 111, 114, - 0, 102, 76, 97, 121, 101, - 114, 79, 112, 97, 99, 105, - 116, 121, 0, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 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, 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, 3, 3, - 0, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 171, 171, 79, 83, - 71, 78, 128, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 116, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 12, - 0, 0, 116, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 12, 3, - 0, 0, 116, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 7, 8, - 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 -}; -ShaderBytes sLayerDynamicBlendVS = { LayerDynamicBlendVS, sizeof(LayerDynamicBlendVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 176 Size: 64 -// float4x4 mBackdropTransform; // Offset: 240 Size: 64 -// float4 fLayerColor; // Offset: 304 Size: 16 [unused] -// float fLayerOpacity; // Offset: 320 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 336 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 352 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 0 NONE float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) -// c9 cb0 11 6 ( FLT, FLT, FLT, FLT) -// c15 cb0 18 1 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c16, 1, 0.5, 0, 0 - dcl_texcoord v0 - dcl_texcoord1 v1 - mul r0, v0.y, c2 - mad r0, c1, v0.x, r0 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - mul r1.xy, r0.y, c10 - mad r1.xy, c9, r0.x, r1 - mad r1.xy, c11, r0.z, r1 - add r1.xy, r1, c12 - mov r1.z, c16.x - mul oT1.xyz, r0.w, r1 - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - add r1.xy, r0, c16.x - mad r1.y, r1.y, -c16.y, c16.x - mul r1.x, r1.x, c16.y - mul r1.yz, r1.y, c14.xyxw - mad r1.xy, c13.yxzw, r1.x, r1.yzzw - add oT0.zw, r1.xyxy, c15.xyyx - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT0.xy, v1 - -// approximately 26 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[19], immediateIndexed -dcl_input v0.xy -dcl_input v1.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o1.zw -dcl_output o2.xyz -dcl_temps 4 -mul r0.xyzw, v0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r1.xyz, r0.xyzx, r0.wwww -mov r1.w, r0.w -add r2.xyzw, r1.xyzw, -cb0[8].xyzw -mul r1.xyz, r2.wwww, r2.xyzx -mul r3.xyzw, r1.yyyy, cb0[5].xyzw -mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw -mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw -mad r2.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw -mov o0.xyzw, r2.xyzw -add r1.xy, r2.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) -mad r1.y, -r1.y, l(0.500000), l(1.000000) -mul r1.x, r1.x, l(0.500000) -mul r1.yz, r1.yyyy, cb0[16].xxyx -mad r1.xy, cb0[15].xyxx, r1.xxxx, r1.yzyy -add o1.zw, r1.xxxy, cb0[18].xxxy -mov o1.xy, v1.xyxx -div r0.xyzw, r0.xyzw, r1.wwww -mul r1.xy, r0.yyyy, cb0[12].xyxx -mad r0.xy, cb0[11].xyxx, r0.xxxx, r1.xyxx -mad r0.xy, cb0[13].xyxx, r0.zzzz, r0.xyxx -mad r0.xy, cb0[14].xyxx, r0.wwww, r0.xyxx -mov r0.z, l(1.000000) -mul o2.xyz, r1.wwww, r0.xyzx -ret -// Approximately 27 instruction slots used -#endif - -const BYTE LayerDynamicBlendMaskVS[] = -{ - 68, 88, 66, 67, 115, 21, - 225, 150, 213, 56, 183, 18, - 155, 218, 42, 44, 175, 100, - 187, 148, 1, 0, 0, 0, - 68, 10, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 132, 2, 0, 0, 76, 6, - 0, 0, 200, 6, 0, 0, - 104, 9, 0, 0, 188, 9, - 0, 0, 65, 111, 110, 57, - 68, 2, 0, 0, 68, 2, - 0, 0, 0, 2, 254, 255, - 236, 1, 0, 0, 88, 0, - 0, 0, 4, 0, 36, 0, - 0, 0, 84, 0, 0, 0, - 84, 0, 0, 0, 36, 0, - 1, 0, 84, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 6, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 6, 0, 9, 0, - 0, 0, 0, 0, 0, 0, - 18, 0, 1, 0, 15, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 16, 0, - 15, 160, 0, 0, 128, 63, - 0, 0, 0, 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, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 85, 144, - 2, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 1, 0, 228, 160, 0, 0, - 0, 144, 0, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 3, 0, 228, 160, 6, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 255, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 0, 128, 5, 0, 0, 3, - 1, 0, 3, 128, 0, 0, - 85, 128, 10, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 9, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 3, 128, 11, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 3, 128, - 1, 0, 228, 128, 12, 0, - 228, 160, 1, 0, 0, 2, - 1, 0, 4, 128, 16, 0, - 0, 160, 5, 0, 0, 3, - 1, 0, 7, 224, 0, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 8, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 255, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 4, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 3, 128, 0, 0, 228, 128, - 16, 0, 0, 160, 4, 0, - 0, 4, 1, 0, 2, 128, - 1, 0, 85, 128, 16, 0, - 85, 161, 16, 0, 0, 160, - 5, 0, 0, 3, 1, 0, - 1, 128, 1, 0, 0, 128, - 16, 0, 85, 160, 5, 0, - 0, 3, 1, 0, 6, 128, - 1, 0, 85, 128, 14, 0, - 196, 160, 4, 0, 0, 4, - 1, 0, 3, 128, 13, 0, - 225, 160, 1, 0, 0, 128, - 1, 0, 233, 128, 2, 0, - 0, 3, 0, 0, 12, 224, - 1, 0, 68, 128, 15, 0, - 20, 160, 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, 3, 224, - 1, 0, 228, 144, 255, 255, - 0, 0, 83, 72, 68, 82, - 192, 3, 0, 0, 64, 0, - 1, 0, 240, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 194, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 2, 0, - 0, 0, 104, 0, 0, 2, - 4, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 86, 21, - 16, 0, 0, 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, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 3, 0, 0, 0, 86, 5, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 54, 0, 0, 5, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 0, 0, 0, 10, - 50, 0, 16, 0, 1, 0, - 0, 0, 70, 0, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 34, 0, - 16, 0, 1, 0, 0, 0, - 26, 0, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 63, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 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, - 0, 63, 56, 0, 0, 8, - 98, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 1, 0, 0, 0, 6, 129, - 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 1, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 150, 5, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 194, 32, 16, 0, 1, 0, - 0, 0, 6, 4, 16, 0, - 1, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 14, 0, 0, 7, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 50, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 50, 0, 0, 10, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 32, 16, 0, 2, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 27, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 152, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 112, 2, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 144, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 242, 1, - 0, 0, 240, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 5, 2, - 0, 0, 48, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 17, 2, - 0, 0, 64, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, - 0, 0, 0, 0, 48, 2, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 64, 2, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 96, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 96, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 109, 77, 97, 115, 107, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 109, 66, - 97, 99, 107, 100, 114, 111, - 112, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 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, 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, 3, 3, 0, 0, - 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 79, 83, 71, 78, - 128, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 116, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 3, 0, 0, - 116, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 8, 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 -}; -ShaderBytes sLayerDynamicBlendMaskVS = { LayerDynamicBlendMaskVS, sizeof(LayerDynamicBlendMaskVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4x4 mMaskTransform; // Offset: 272 Size: 64 [unused] -// float4x4 mBackdropTransform; // Offset: 336 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tCr texture float4 2d t3 1 -// tMask texture float4 2d t5 1 -// tBackdrop texture float4 2d t6 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c2 cb0 2 1 (UINT,UINT,UINT,UINT) -// c3 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t1 -// s2 s0 t2 -// s3 s0 t3 -// s4 s0 t5 -// s5 s0 t6 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c6, -0.50195998, -1, -0, -0.5 - def c7, -1, -2, -4, -0.0627499968 - def c8, -1, -2, -3, -4 - def c9, -5, -6, -7, -8 - def c10, 1, 0.25, 2, -1 - def c11, 16, -12, -13, -14 - def c12, -9, -10, -11, -12 - def c13, 0.300000012, 0.589999974, 0.109999999, 0 - dcl t0 - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - dcl_2d s3 - dcl_2d s4 - dcl_2d s5 - mov r0.x, -c6.z - mov r1.x, -c6.z - mov r2.z, -c6.z - mov r3.w, -c7.x - texld r4, t0, s1 - texld r5, t0, s3 - add r5.w, r5.x, c6.x - add r5.x, r4.x, c7.w - rcp r0.w, t1.z - mul r4.xy, r0.w, t1 - texld r6, t0, s2 - texld r4, r4, s4 - add r5.yz, r6.xxyw, c6.x - dp3 r3.x, c3, r5.xyww - dp3 r3.y, c4, r5.xyww - dp3 r3.z, c5, r5.xyww - mul r3, r3, c1.x - mul r6, r4.x, r3 - dp3 r7.x, c3, r5 - dp3 r7.y, c4, r5 - dp3 r7.z, c5, r5 - mov r7.w, -c7.x - mul r5, r7, c1.x - mul r7, r4.x, r5 - mov r8.xyz, c7 - add r9, r8.xyzx, c2.xxxy - mul r9, r9, r9 - cmp r6, -r9.y, r6, r7 - mov r7.xy, t0.wzzw - texld r10, t0, s0 - texld r7, r7, s5 - mul r10, r10, c1.x - mul r11, r4.x, r10 - cmp r6, -r9.x, r11, r6 - mov r11.xyz, r10 - mov r11.w, c1.x - mul r12, r4.x, r11 - mul r4, r4.x, c0 - cmp r6, -c2.x, r12, r6 - cmp r8.yz, -r9.xzww, c6.y, c6.z - cmp r0.w, -r9.y, c7.x, r8.y - cmp r1.w, -c2.y, r8.x, r8.z - cmp r0.w, -r9.x, c7.x, r0.w - cmp r0.w, -c2.x, r8.x, r0.w - cmp r4, r0.w, r4, r6 - cmp r3, -r9.y, r3, r5 - cmp r3, -r9.x, r10, r3 - cmp r3, -c2.x, r11, r3 - cmp r3, r0.w, c0, r3 - cmp r3, -c2.y, r3, r4 - cmp r3, r1.w, -c6.zzzy, r3 - rcp r0.w, r3.w - mul r4.xyz, r0.w, r3 - cmp r4.xyz, -c2.w, r3, r4 - add r5.xy, -r4.yzzw, r4 - cmp r5.zw, r5.x, r4.xyxy, r4.xyyx - max r0.w, r5.z, r4.z - min r1.w, r4.z, r5.w - add r6.w, r0.w, -r1.w - rcp r0.w, r7.w - mul r8.xyz, r0.w, r7 - mad r5.zw, r7.xyzy, r0.w, -r8.xyxz - mul r9.xy, r6.w, r5.zwzw - mad r10, r7.yxxz, r0.w, -r8.xzyy - rcp r1.w, r10.x - mul r6.y, r1.w, r9.x - cmp r1.yz, r10.z, -c6.z, r6.xwyw - mul r11, r6.w, r10 - rcp r1.w, r5.w - mul r6.x, r1.w, r11.y - cmp r2.xy, r10.w, -c6.z, r6.xwzw - cmp r1.xyz, r5.z, r1, r2 - rcp r1.w, r5.z - mul r6.z, r1.w, r11.x - cmp r0.yz, r10.y, -c6.z, r6.xzww - cmp r0.xyz, r10.w, r0, r1 - mov r1.y, -c6.z - mov r2.y, -c6.z - mov r12.z, -c6.z - rcp r1.w, r10.z - mul r6.y, r1.w, r11.w - cmp r2.xz, r10.x, -c6.z, r6.wyyw - rcp r1.w, r10.y - mul r6.x, r1.w, r9.y - cmp r12.xy, r5.z, -c6.z, r6.wxzw - cmp r2.xyz, r10.w, r2, r12 - rcp r1.w, r10.w - mul r6.z, r1.w, r11.z - cmp r1.xz, r5.w, -c6.z, r6.zyww - cmp r1.xyz, r5.z, r1, r2 - cmp r0.xyz, r10.x, r0, r1 - cmp r1.xy, r10.z, r8, r8.yxzw - dp3 r4.w, c13, r0 - dp3 r8.w, c13, r8 - add r4.w, -r4.w, r8.w - add r0.xyz, r0, r4.w - add r4.w, -r0.y, r0.x - cmp r1.zw, r4.w, r0.xyyx, r0.xyxy - min r4.w, r0.z, r1.z - max r2.x, r1.w, r0.z - dp3 r1.z, c13, r0 - add r1.w, -r4.w, r1.z - rcp r1.w, r1.w - add r2.yzw, r0.xxyz, -r1.z - mul r2.yzw, r1.z, r2 - mad r2.yzw, r2, r1.w, r1.z - cmp r0.xyz, r4.w, r0, r2.yzww - add r2.yzw, -r1.z, r0.xxyz - add r1.w, -r1.z, -c7.x - mul r2.yzw, r1.w, r2 - add r1.w, -r1.z, r2.x - add r4.w, -r2.x, -c7.x - rcp r1.w, r1.w - mad r2.xyz, r2.yzww, r1.w, r1.z - cmp r0.xyz, r4.w, r0, r2 - mov r4.w, c2.z - add r1.zw, r4.w, c11 - mul r1.zw, r1, r1 - dp3 r2.x, c13, r4 - add r2.y, -r8.w, r2.x - add r2.x, -r2.x, r8.w - add r2.xzw, r2.x, r4.xyyz - mad r6.xyz, r7, r0.w, r2.y - add r6.w, -r6.y, r6.x - cmp r5.zw, r6.w, r6.xyyx, r6.xyxy - min r2.y, r6.z, r5.z - max r9.x, r5.w, r6.z - dp3 r6.w, c13, r6 - add r5.z, -r2.y, r6.w - rcp r5.z, r5.z - add r9.yzw, -r6.w, r6.xxyz - mul r9.yzw, r6.w, r9 - mad r9.yzw, r9, r5.z, r6.w - cmp r6.xyz, r2.y, r6, r9.yzww - add r9.yzw, -r6.w, r6.xxyz - add r2.y, -r6.w, -c7.x - mul r9.yzw, r2.y, r9 - add r2.y, -r6.w, r9.x - add r5.z, -r9.x, -c7.x - rcp r5.w, r2.y - mad r9.xyz, r9.yzww, r5.w, r6.w - cmp r6.xyz, r5.z, r6, r9 - cmp r6.xyz, -r1.w, r6, -c6.z - add r1.w, -r2.z, r2.x - cmp r5.zw, r1.w, r2.xyzx, r2.xyxz - min r1.w, r2.w, r5.z - max r6.w, r5.w, r2.w - dp3 r2.y, c13, r2.xzww - add r5.z, -r1.w, r2.y - rcp r5.z, r5.z - add r9.xyz, -r2.y, r2.xzww - mul r9.xyz, r2.y, r9 - mad r9.xyz, r9, r5.z, r2.y - cmp r2.xzw, r1.w, r2, r9.xyyz - add r9.xyz, -r2.y, r2.xzww - add r1.w, -r2.y, -c7.x - mul r9.xyz, r1.w, r9 - add r1.w, -r2.y, r6.w - add r6.w, -r6.w, -c7.x - rcp r1.w, r1.w - mad r9.xyz, r9, r1.w, r2.y - cmp r2.xyz, r6.w, r2.xzww, r9 - cmp r2.xyz, -r1.z, r2, r6 - add r6, r4.w, c12 - mul r6, r6, r6 - cmp r0.xyz, -r6.w, r0, r2 - add r2, -r4.xxzy, r4.yzxz - mov r9.y, -c6.z - mov r10.y, -c6.z - mov r11.z, -c6.z - rcp r6.w, r2.z - max r9.w, r1.x, r8.z - min r10.w, r8.z, r1.y - add r1.w, r9.w, -r10.w - mul r5.zw, r1.w, r5.xyxy - mul r1.x, r6.w, r5.w - cmp r11.xy, r2.y, -c6.z, r1.wxzw - rcp r5.w, r5.x - mul r12, r1.w, r2 - mul r1.y, r5.w, r12.w - cmp r10.xz, r2.x, -c6.z, r1.wyyw - cmp r10.xyz, r2.w, r10, r11 - rcp r5.w, r2.w - mul r1.z, r5.w, r5.z - cmp r9.xz, r5.y, -c6.z, r1.zyww - cmp r9.xyz, r2.y, r9, r10 - mov r10.x, -c6.z - mov r11.x, -c6.z - mov r13.z, -c6.z - rcp r6.w, r2.x - mul r1.y, r6.w, r12.y - cmp r11.yz, r5.x, -c6.z, r1.xwyw - rcp r6.w, r5.y - mul r1.x, r6.w, r12.z - cmp r13.xy, r2.w, -c6.z, r1.xwzw - cmp r5.xyz, r2.y, r11, r13 - rcp r5.w, r2.y - mul r1.z, r5.w, r12.x - cmp r10.yz, r2.z, -c6.z, r1.xzww - cmp r1.xyz, r2.w, r10, r5 - cmp r1.xyz, r2.x, r1, r9 - dp3 r1.w, c13, r1 - add r1.w, -r1.w, r8.w - add r1.xyz, r1.w, r1 - add r1.w, -r1.y, r1.x - cmp r2.xy, r1.w, r1.yxzw, r1 - min r6.w, r1.z, r2.x - max r8.w, r2.y, r1.z - dp3 r1.w, c13, r1 - add r2.x, -r6.w, r1.w - rcp r2.x, r2.x - add r2.yzw, -r1.w, r1.xxyz - mul r2.yzw, r1.w, r2 - mad r2.xyz, r2.yzww, r2.x, r1.w - cmp r1.xyz, r6.w, r1, r2 - add r2.xyz, -r1.w, r1 - add r2.w, -r1.w, -c7.x - mul r2.xyz, r2.w, r2 - add r2.w, -r1.w, r8.w - add r6.w, -r8.w, -c7.x - rcp r2.w, r2.w - mad r2.xyz, r2, r2.w, r1.w - cmp r1.xyz, r6.w, r1, r2 - cmp r0.xyz, -r6.z, r1, r0 - mad r1.xyz, r7, r0.w, r4 - mul r2.xyz, r4, r8 - mad r5.xyz, r2, c7.y, r1 - mad r1.xyz, r8, -r4, r1 - cmp r0.xyz, -r6.y, r5, r0 - mad r5.xyz, r7, r0.w, -r4 - abs r5.xyz, r5 - cmp r0.xyz, -r6.x, r5, r0 - add r5.xy, -r4.yzzw, -c6.w - mad r6.xyz, r4, c10.z, c10.w - mad r1.w, r7.z, -r0.w, c10.y - mad r9.xyz, r8, c11.x, c11.y - mad r9.xyz, r9, r8, -c7.z - mul r9.xyz, r8, r9 - rsq r2.w, r8.z - rcp r2.w, r2.w - cmp r1.w, r1.w, r9.z, r2.w - mad r1.w, r7.z, -r0.w, r1.w - mad r1.w, r6.z, r1.w, r8.z - mad r10.xyz, r4, c7.y, -c7.x - mul r10.xyz, r8, r10 - mad r11, r7.yzxy, -r0.w, c10.xxyy - mad r5.zw, r10.xyyz, -r11.xyxy, r8.xyyz - cmp r12.z, r5.y, r5.w, r1.w - rsq r1.w, r8.y - rcp r1.w, r1.w - cmp r1.w, r11.w, r9.y, r1.w - mad r1.w, r7.y, -r0.w, r1.w - mad r1.w, r6.y, r1.w, r8.y - cmp r12.y, r5.x, r5.z, r1.w - add r13, -r4.xyzx, -c6.yyyw - rsq r1.w, r8.x - rcp r1.w, r1.w - cmp r1.w, r11.z, r9.x, r1.w - mad r1.w, r7.x, -r0.w, r1.w - mad r1.w, r6.x, r1.w, r8.x - mad r6, r7.xyzx, -r0.w, -c6.wwwy - mad r7.xyz, r7, r0.w, c7.x - mul r7.xyz, r7, r7 - mad r0.w, r10.x, -r6.w, r8.x - cmp r12.x, r13.w, r0.w, r1.w - add r9, r4.w, c9 - mul r9, r9, r9 - cmp r0.xyz, -r9.w, r12, r0 - add r10.xyz, r8, r8 - mad r12.xyz, r4, -c7.y, r10 - add r12.xyz, r12, c7.x - mad r14.xyz, r4, -r10, r12 - mul r10.xyz, r4, r10 - add r15.xyz, r4, r4 - mul r16.xyz, r8, r15 - mad r12.xyz, r15, -r8, r12 - cmp r6.xyz, r6, r10, r12 - cmp r5.yz, r5.xxyw, r16, r14 - cmp r5.x, r13.w, r16.x, r14.x - cmp r0.xyz, -r9.z, r5, r0 - rcp r0.w, r4.x - mad r0.w, r6.w, -r0.w, -c7.x - max r1.w, r0.w, -c6.z - mul r5.xyz, r4, r4 - cmp r0.w, -r5.x, -c6.z, r1.w - cmp r10.x, -r7.x, -c7.x, r0.w - rcp r0.w, r4.y - mad r0.w, r11.x, -r0.w, -c7.x - max r1.w, r0.w, -c6.z - cmp r0.w, -r5.y, -c6.z, r1.w - cmp r10.y, -r7.y, -c7.x, r0.w - rcp r0.w, r4.z - mad r0.w, r11.y, -r0.w, -c7.x - max r1.w, r0.w, -c6.z - cmp r0.w, -r5.z, -c6.z, r1.w - cmp r10.z, -r7.z, -c7.x, r0.w - cmp r0.xyz, -r9.y, r10, r0 - add r5.xyz, r4, c7.x - mul r5.xyz, r5, r5 - rcp r0.w, r13.x - mul r0.w, r0.w, r8.x - min r1.w, r0.w, -c7.x - cmp r0.w, -r5.x, -c7.x, r1.w - mul r7.xyz, r8, r8 - cmp r10.x, -r7.x, -c6.z, r0.w - rcp r0.w, r13.y - rcp r1.w, r13.z - mul r1.w, r1.w, r8.z - min r2.w, r1.w, -c7.x - cmp r1.w, -r5.z, -c7.x, r2.w - cmp r10.z, -r7.z, -c6.z, r1.w - mul r0.w, r0.w, r8.y - min r1.w, r0.w, -c7.x - cmp r0.w, -r5.y, -c7.x, r1.w - cmp r10.y, -r7.y, -c6.z, r0.w - cmp r0.xyz, -r9.x, r10, r0 - add r5, r4.w, c8 - mul r5, r5, r5 - max r7.xyz, r8, r4 - min r9.xyz, r4, r8 - cmp r0.xyz, -r5.w, r7, r0 - cmp r0.xyz, -r5.z, r9, r0 - cmp r0.xyz, -r5.y, r6, r0 - cmp r0.xyz, -r5.x, r1, r0 - cmp r0.xyz, -c2.z, r2, r0 - lrp r1.xyz, r7.w, r0, r4 - mul r1.w, r7.w, r7.w - mul r0.xyz, r3.w, r1 - mul r1.x, r3.w, r3.w - mov r0.w, r3.w - cmp r0, -r1.x, -c6.z, r0 - cmp r0, -r1.w, r3, r0 - mov oC0, r0 - -// approximately 333 instruction slots used (6 texture, 327 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_input_ps linear v1.xy -dcl_input_ps linear v1.zw -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 22 -sample r0.xyzw, v1.zwzz, t6.xyzw, s0 -if_z cb0[2].y - if_z cb0[2].x - sample r1.xyzw, v1.xyxx, t0.xyzw, s0 - mul r1.xyz, r1.xyzx, cb0[1].xxxx - mov r1.w, cb0[1].x - mov r2.x, l(-1) - else - ieq r2.y, l(1), cb0[2].x - if_nz r2.y - sample r3.xyzw, v1.xyxx, t0.xyzw, s0 - mul r1.xyzw, r3.xyzw, cb0[1].xxxx - mov r2.x, l(-1) - else - ieq r2.y, l(2), cb0[2].x - if_nz r2.y - sample r3.xyzw, v1.xyxx, t1.xyzw, s0 - add r3.x, r3.x, l(-0.062750) - sample r4.xyzw, v1.xyxx, t2.xyzw, s0 - add r3.y, r4.x, l(-0.501960) - sample r4.xyzw, v1.xyxx, t3.xyzw, s0 - add r3.z, r4.x, l(-0.501960) - dp3 r4.x, cb0[3].xyzx, r3.xyzx - dp3 r4.y, cb0[4].xyzx, r3.xyzx - dp3 r4.z, cb0[5].xyzx, r3.xyzx - mov r4.w, l(1.000000) - mul r1.xyzw, r4.xyzw, cb0[1].xxxx - mov r2.x, l(-1) - else - ieq r2.x, l(4), cb0[2].x - if_nz r2.x - sample r3.xyzw, v1.xyxx, t1.xyzw, s0 - add r3.x, r3.x, l(-0.062750) - sample r4.xyzw, v1.xyxx, t2.xyzw, s0 - add r3.yz, r4.xxyx, l(0.000000, -0.501960, -0.501960, 0.000000) - dp3 r4.x, cb0[3].xyzx, r3.xyzx - dp3 r4.y, cb0[4].xyzx, r3.xyzx - dp3 r4.z, cb0[5].xyzx, r3.xyzx - mov r4.w, l(1.000000) - mul r1.xyzw, r4.xyzw, cb0[1].xxxx - endif - endif - endif - endif - movc r1.xyzw, r2.xxxx, r1.xyzw, cb0[0].xyzw - mov r2.x, l(-1) -else - ieq r2.x, l(1), cb0[2].y - if_nz r2.x - if_z cb0[2].x - sample r3.xyzw, v1.xyxx, t0.xyzw, s0 - mul r3.xyz, r3.xyzx, cb0[1].xxxx - div r2.yz, v2.xxyx, v2.zzzz - sample r4.xyzw, r2.yzyy, t5.xyzw, s0 - mov r3.w, cb0[1].x - mul r1.xyzw, r3.xyzw, r4.xxxx - mov r2.y, l(-1) - else - ieq r2.z, l(1), cb0[2].x - if_nz r2.z - div r2.zw, v2.xxxy, v2.zzzz - sample r3.xyzw, r2.zwzz, t5.xyzw, s0 - sample r4.xyzw, v1.xyxx, t0.xyzw, s0 - mul r4.xyzw, r4.xyzw, cb0[1].xxxx - mul r1.xyzw, r3.xxxx, r4.xyzw - mov r2.y, l(-1) - else - ieq r2.z, l(2), cb0[2].x - if_nz r2.z - div r2.zw, v2.xxxy, v2.zzzz - sample r3.xyzw, r2.zwzz, t5.xyzw, s0 - sample r4.xyzw, v1.xyxx, t1.xyzw, s0 - add r4.x, r4.x, l(-0.062750) - sample r5.xyzw, v1.xyxx, t2.xyzw, s0 - add r4.y, r5.x, l(-0.501960) - sample r5.xyzw, v1.xyxx, t3.xyzw, s0 - add r4.z, r5.x, l(-0.501960) - dp3 r5.x, cb0[3].xyzx, r4.xyzx - dp3 r5.y, cb0[4].xyzx, r4.xyzx - dp3 r5.z, cb0[5].xyzx, r4.xyzx - mov r5.w, l(1.000000) - mul r4.xyzw, r5.xyzw, cb0[1].xxxx - mul r1.xyzw, r3.xxxx, r4.xyzw - mov r2.y, l(-1) - else - ieq r2.y, l(4), cb0[2].x - if_nz r2.y - div r2.zw, v2.xxxy, v2.zzzz - sample r3.xyzw, r2.zwzz, t5.xyzw, s0 - sample r4.xyzw, v1.xyxx, t1.xyzw, s0 - add r4.x, r4.x, l(-0.062750) - sample r5.xyzw, v1.xyxx, t2.xyzw, s0 - add r4.yz, r5.xxyx, l(0.000000, -0.501960, -0.501960, 0.000000) - dp3 r5.x, cb0[3].xyzx, r4.xyzx - dp3 r5.y, cb0[4].xyzx, r4.xyzx - dp3 r5.z, cb0[5].xyzx, r4.xyzx - mov r5.w, l(1.000000) - mul r4.xyzw, r5.xyzw, cb0[1].xxxx - mul r1.xyzw, r3.xxxx, r4.xyzw - endif - endif - endif - endif - if_z r2.y - div r2.yz, v2.xxyx, v2.zzzz - sample r3.xyzw, r2.yzyy, t5.xyzw, s0 - mul r1.xyzw, r3.xxxx, cb0[0].xyzw - endif - endif -endif -movc r1.xyzw, r2.xxxx, r1.xyzw, l(0,0,0,1.000000) -eq r2.x, r0.w, l(0.000000) -if_nz r2.x - mov o0.xyzw, r1.xyzw - ret -endif -eq r2.x, r1.w, l(0.000000) -if_nz r2.x - mov o0.xyzw, l(0,0,0,0) - ret -endif -div r0.xyz, r0.xyzx, r0.wwww -div r2.xyz, r1.xyzx, r1.wwww -movc r1.xyz, cb0[2].wwww, r2.xyzx, r1.xyzx -mul r2.xyz, r0.xyzx, r1.xyzx -add r3.xyz, r0.xyzx, r1.xyzx -mad r4.xyz, -r0.xyzx, r1.xyzx, r3.xyzx -ge r5.xyzw, l(0.500000, 0.500000, 0.500000, 0.250000), r0.xyzx -add r6.xyz, r0.xyzx, r0.xyzx -mul r7.xyz, r1.xyzx, r6.xyzx -add r8.xyz, r1.xyzx, r1.xyzx -mad r9.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), r6.xyzx -add r9.xyz, r9.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) -mul r10.xyz, r0.xyzx, r8.xyzx -mad r8.xyz, -r8.xyzx, r0.xyzx, r9.xyzx -movc r5.xyz, r5.xyzx, r7.xyzx, r8.xyzx -min r7.xyz, r0.xyzx, r1.xyzx -ieq r8.xyzw, l(1, 2, 3, 4), cb0[2].zzzz -max r11.xyz, r0.xyzx, r1.xyzx -eq r12.xyzw, r0.xyzx, l(0.000000, 0.000000, 0.000000, 1.000000) -eq r13.xyzw, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -add r14.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -div r14.xyz, r0.xyzx, r14.xyzx -min r14.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -movc r13.xyz, r13.xyzx, l(1.000000,1.000000,1.000000,0), r14.xyzx -movc r12.xyz, r12.xyzx, l(0,0,0,0), r13.xyzx -add r13.xyz, -r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -div r14.xyz, r13.xyzx, r1.xyzx -min r14.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -add r14.xyz, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -movc r2.w, r13.w, l(0), r14.x -movc r15.x, r12.w, l(1.000000), r2.w -eq r14.xw, r0.yyyz, l(1.000000, 0.000000, 0.000000, 1.000000) -eq r16.xy, r1.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) -movc r14.yz, r16.xxyx, l(0,0,0,0), r14.yyzy -movc r15.yz, r14.xxwx, l(0,1.000000,1.000000,0), r14.yyzy -ge r14.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx -mad r6.xyz, -r1.xyzx, r6.xyzx, r9.xyzx -movc r6.xyz, r14.xyzx, r10.xyzx, r6.xyzx -ieq r9.xyzw, l(5, 6, 7, 8), cb0[2].zzzz -mad r10.xyz, -r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) -mul r10.xyz, r0.xyzx, r10.xyzx -mad r10.xyz, -r10.xyzx, r13.xyzx, r0.xyzx -mad r13.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) -mad r16.xyz, r0.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000), l(-12.000000, -12.000000, -12.000000, 0.000000) -mad r16.xyz, r16.xyzx, r0.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) -mul r16.xyz, r0.xyzx, r16.xyzx -sqrt r17.xyz, r0.xyzx -movc r2.w, r5.w, r16.x, r17.x -add r2.w, -r0.x, r2.w -mad r2.w, r13.x, r2.w, r0.x -movc r18.x, r14.x, r10.x, r2.w -ge r10.xw, l(0.250000, 0.000000, 0.000000, 0.250000), r0.yyyz -movc r10.xw, r10.xxxw, r16.yyyz, r17.yyyz -add r10.xw, -r0.yyyz, r10.xxxw -mad r10.xw, r13.yyyz, r10.xxxw, r0.yyyz -movc r18.yz, r14.yyzy, r10.yyzy, r10.xxwx -add r10.xyz, r0.xyzx, -r1.xyzx -mad r3.xyz, -r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), r3.xyzx -max r2.w, r0.y, r0.x -max r2.w, r0.z, r2.w -min r3.w, r0.y, r0.x -min r3.w, r0.z, r3.w -add r13.w, r2.w, -r3.w -ge r2.w, r1.y, r1.x -if_nz r2.w - lt r14.xyz, r1.xxzx, r1.zyyz - add r16.xyzw, -r1.xxzz, r1.yzxy - mul r17.xyz, r13.wwww, r16.xyzx - div r13.xyz, r17.xyzx, r16.yxwy - and r16.yz, r13.xxwx, r14.xxxx - ge r14.xw, r1.zzzz, r1.yyyx - and r17.yz, r13.wwyw, r14.yyyy - and r19.xy, r13.zwzz, r14.zzzz - mov r17.x, l(0) - mov r19.z, l(0) - movc r14.yzw, r14.wwww, r17.xxyz, r19.xxyz - mov r16.x, l(0) - movc r14.xyz, r14.xxxx, r16.xyzx, r14.yzwy -else - lt r16.xyz, r1.yyzy, r1.zxxz - add r17.xyzw, -r1.yyzz, r1.xzyx - mul r19.xyz, r13.wwww, r17.xyzx - div r13.xyz, r19.xyzx, r17.yxwy - and r17.xz, r13.xxwx, r16.xxxx - ge r16.xw, r1.zzzz, r1.xxxy - and r19.xz, r13.wwyw, r16.yyyy - and r13.xy, r13.wzww, r16.zzzz - mov r19.y, l(0) - mov r13.z, l(0) - movc r13.xyz, r16.wwww, r19.xyzx, r13.xyzx - mov r17.y, l(0) - movc r14.xyz, r16.xxxx, r17.xyzx, r13.xyzx -endif -dp3 r2.w, l(0.300000, 0.590000, 0.110000, 0.000000), r0.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r14.xyzx -add r3.w, r2.w, -r3.w -add r13.xyz, r3.wwww, r14.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r13.xyzx -min r4.w, r13.y, r13.x -min r4.w, r13.z, r4.w -max r5.w, r13.y, r13.x -max r5.w, r13.z, r5.w -lt r6.w, r4.w, l(0.000000) -add r14.xyz, -r3.wwww, r13.xyzx -mul r14.xyz, r3.wwww, r14.xyzx -add r4.w, r3.w, -r4.w -div r14.xyz, r14.xyzx, r4.wwww -add r14.xyz, r3.wwww, r14.xyzx -movc r13.xyz, r6.wwww, r14.xyzx, r13.xyzx -lt r4.w, l(1.000000), r5.w -add r14.xyz, -r3.wwww, r13.xyzx -add r6.w, -r3.w, l(1.000000) -mul r14.xyz, r6.wwww, r14.xyzx -add r5.w, -r3.w, r5.w -div r14.xyz, r14.xyzx, r5.wwww -add r14.xyz, r3.wwww, r14.xyzx -movc r13.xyz, r4.wwww, r14.xyzx, r13.xyzx -ieq r14.xyzw, l(9, 10, 11, 12), cb0[2].zzzz -max r3.w, r1.y, r1.x -max r3.w, r1.z, r3.w -min r4.w, r1.y, r1.x -min r4.w, r1.z, r4.w -add r16.w, r3.w, -r4.w -ge r3.w, r0.y, r0.x -if_nz r3.w - lt r17.xyz, r0.xxzx, r0.zyyz - add r19.xyzw, -r0.xxzz, r0.yzxy - mul r20.xyz, r16.wwww, r19.xyzx - div r16.xyz, r20.xyzx, r19.yxwy - and r19.yz, r16.xxwx, r17.xxxx - ge r17.xw, r0.zzzz, r0.yyyx - and r20.yz, r16.wwyw, r17.yyyy - and r21.xy, r16.zwzz, r17.zzzz - mov r20.x, l(0) - mov r21.z, l(0) - movc r17.yzw, r17.wwww, r20.xxyz, r21.xxyz - mov r19.x, l(0) - movc r17.xyz, r17.xxxx, r19.xyzx, r17.yzwy -else - lt r19.xyz, r0.yyzy, r0.zxxz - add r20.xyzw, -r0.yyzz, r0.xzyx - mul r21.xyz, r16.wwww, r20.xyzx - div r16.xyz, r21.xyzx, r20.yxwy - and r20.xz, r16.xxwx, r19.xxxx - ge r19.xw, r0.zzzz, r0.xxxy - and r21.xz, r16.wwyw, r19.yyyy - and r16.xy, r16.wzww, r19.zzzz - mov r21.y, l(0) - mov r16.z, l(0) - movc r16.xyz, r19.wwww, r21.xyzx, r16.xyzx - mov r20.y, l(0) - movc r17.xyz, r19.xxxx, r20.xyzx, r16.xyzx -endif -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r17.xyzx -add r3.w, r2.w, -r3.w -add r16.xyz, r3.wwww, r17.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r16.xyzx -min r4.w, r16.y, r16.x -min r4.w, r16.z, r4.w -max r5.w, r16.y, r16.x -max r5.w, r16.z, r5.w -lt r6.w, r4.w, l(0.000000) -add r17.xyz, -r3.wwww, r16.xyzx -mul r17.xyz, r3.wwww, r17.xyzx -add r4.w, r3.w, -r4.w -div r17.xyz, r17.xyzx, r4.wwww -add r17.xyz, r3.wwww, r17.xyzx -movc r16.xyz, r6.wwww, r17.xyzx, r16.xyzx -lt r4.w, l(1.000000), r5.w -add r17.xyz, -r3.wwww, r16.xyzx -add r6.w, -r3.w, l(1.000000) -mul r17.xyz, r6.wwww, r17.xyzx -add r5.w, -r3.w, r5.w -div r17.xyz, r17.xyzx, r5.wwww -add r17.xyz, r3.wwww, r17.xyzx -movc r16.xyz, r4.wwww, r17.xyzx, r16.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r1.xyzx -add r4.w, r2.w, -r3.w -add r17.xyz, r1.xyzx, r4.wwww -dp3 r4.w, l(0.300000, 0.590000, 0.110000, 0.000000), r17.xyzx -min r5.w, r17.y, r17.x -min r5.w, r17.z, r5.w -max r6.w, r17.y, r17.x -max r6.w, r17.z, r6.w -lt r7.w, r5.w, l(0.000000) -add r19.xyz, -r4.wwww, r17.xyzx -mul r19.xyz, r4.wwww, r19.xyzx -add r5.w, r4.w, -r5.w -div r19.xyz, r19.xyzx, r5.wwww -add r19.xyz, r4.wwww, r19.xyzx -movc r17.xyz, r7.wwww, r19.xyzx, r17.xyzx -lt r5.w, l(1.000000), r6.w -add r19.xyz, -r4.wwww, r17.xyzx -add r7.w, -r4.w, l(1.000000) -mul r19.xyz, r7.wwww, r19.xyzx -add r6.w, -r4.w, r6.w -div r19.xyz, r19.xyzx, r6.wwww -add r19.xyz, r4.wwww, r19.xyzx -movc r17.xyz, r5.wwww, r19.xyzx, r17.xyzx -ieq r19.xy, l(13, 14, 0, 0), cb0[2].zzzz -add r2.w, -r2.w, r3.w -add r0.xyz, r0.xyzx, r2.wwww -dp3 r2.w, l(0.300000, 0.590000, 0.110000, 0.000000), r0.xyzx -min r3.w, r0.y, r0.x -min r3.w, r0.z, r3.w -max r4.w, r0.y, r0.x -max r4.w, r0.z, r4.w -lt r5.w, r3.w, l(0.000000) -add r20.xyz, r0.xyzx, -r2.wwww -mul r20.xyz, r2.wwww, r20.xyzx -add r3.w, r2.w, -r3.w -div r20.xyz, r20.xyzx, r3.wwww -add r20.xyz, r2.wwww, r20.xyzx -movc r0.xyz, r5.wwww, r20.xyzx, r0.xyzx -lt r3.w, l(1.000000), r4.w -add r20.xyz, -r2.wwww, r0.xyzx -add r5.w, -r2.w, l(1.000000) -mul r20.xyz, r5.wwww, r20.xyzx -add r4.w, -r2.w, r4.w -div r20.xyz, r20.xyzx, r4.wwww -add r20.xyz, r2.wwww, r20.xyzx -movc r0.xyz, r3.wwww, r20.xyzx, r0.xyzx -and r0.xyz, r0.xyzx, r19.yyyy -movc r0.xyz, r19.xxxx, r17.xyzx, r0.xyzx -movc r0.xyz, r14.wwww, r16.xyzx, r0.xyzx -movc r0.xyz, r14.zzzz, r13.xyzx, r0.xyzx -movc r0.xyz, r14.yyyy, r3.xyzx, r0.xyzx -movc r0.xyz, r14.xxxx, |r10.xyzx|, r0.xyzx -movc r0.xyz, r9.wwww, r18.xyzx, r0.xyzx -movc r0.xyz, r9.zzzz, r6.xyzx, r0.xyzx -movc r0.xyz, r9.yyyy, r15.xyzx, r0.xyzx -movc r0.xyz, r9.xxxx, r12.xyzx, r0.xyzx -movc r0.xyz, r8.wwww, r11.xyzx, r0.xyzx -movc r0.xyz, r8.zzzz, r7.xyzx, r0.xyzx -movc r0.xyz, r8.yyyy, r5.xyzx, r0.xyzx -movc r0.xyz, r8.xxxx, r4.xyzx, r0.xyzx -movc r0.xyz, cb0[2].zzzz, r0.xyzx, r2.xyzx -add r2.x, -r0.w, l(1.000000) -mul r0.xyz, r0.xyzx, r0.wwww -mad r0.xyz, r2.xxxx, r1.xyzx, r0.xyzx -mul o0.xyz, r1.wwww, r0.xyzx -mov o0.w, r1.w -ret -// Approximately 364 instruction slots used -#endif - -const BYTE BlendShader[] = -{ - 68, 88, 66, 67, 88, 250, - 1, 227, 248, 252, 201, 81, - 195, 71, 192, 164, 105, 10, - 204, 254, 1, 0, 0, 0, - 132, 70, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 180, 23, 0, 0, 160, 65, - 0, 0, 28, 66, 0, 0, - 200, 69, 0, 0, 80, 70, - 0, 0, 65, 111, 110, 57, - 116, 23, 0, 0, 116, 23, - 0, 0, 0, 2, 255, 255, - 20, 23, 0, 0, 96, 0, - 0, 0, 3, 0, 60, 0, - 0, 0, 96, 0, 0, 0, - 96, 0, 6, 0, 36, 0, - 0, 0, 96, 0, 0, 0, - 0, 0, 1, 0, 1, 0, - 2, 0, 2, 0, 3, 0, - 3, 0, 5, 0, 4, 0, - 6, 0, 5, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 2, 0, - 3, 3, 3, 3, 0, 0, - 3, 0, 3, 0, 3, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 6, 0, 15, 160, 115, 128, - 0, 191, 0, 0, 128, 191, - 0, 0, 0, 128, 0, 0, - 0, 191, 81, 0, 0, 5, - 7, 0, 15, 160, 0, 0, - 128, 191, 0, 0, 0, 192, - 0, 0, 128, 192, 18, 131, - 128, 189, 81, 0, 0, 5, - 8, 0, 15, 160, 0, 0, - 128, 191, 0, 0, 0, 192, - 0, 0, 64, 192, 0, 0, - 128, 192, 81, 0, 0, 5, - 9, 0, 15, 160, 0, 0, - 160, 192, 0, 0, 192, 192, - 0, 0, 224, 192, 0, 0, - 0, 193, 81, 0, 0, 5, - 10, 0, 15, 160, 0, 0, - 128, 63, 0, 0, 128, 62, - 0, 0, 0, 64, 0, 0, - 128, 191, 81, 0, 0, 5, - 11, 0, 15, 160, 0, 0, - 128, 65, 0, 0, 64, 193, - 0, 0, 80, 193, 0, 0, - 96, 193, 81, 0, 0, 5, - 12, 0, 15, 160, 0, 0, - 16, 193, 0, 0, 32, 193, - 0, 0, 48, 193, 0, 0, - 64, 193, 81, 0, 0, 5, - 13, 0, 15, 160, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 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, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 1, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 3, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 4, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 5, 8, - 15, 160, 1, 0, 0, 2, - 0, 0, 1, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 1, 0, 1, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 2, 0, 4, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 3, 0, 8, 128, 7, 0, - 0, 161, 66, 0, 0, 3, - 4, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 5, 0, - 15, 128, 0, 0, 228, 176, - 3, 8, 228, 160, 2, 0, - 0, 3, 5, 0, 8, 128, - 5, 0, 0, 128, 6, 0, - 0, 160, 2, 0, 0, 3, - 5, 0, 1, 128, 4, 0, - 0, 128, 7, 0, 255, 160, - 6, 0, 0, 2, 0, 0, - 8, 128, 1, 0, 170, 176, - 5, 0, 0, 3, 4, 0, - 3, 128, 0, 0, 255, 128, - 1, 0, 228, 176, 66, 0, - 0, 3, 6, 0, 15, 128, - 0, 0, 228, 176, 2, 8, - 228, 160, 66, 0, 0, 3, - 4, 0, 15, 128, 4, 0, - 228, 128, 4, 8, 228, 160, - 2, 0, 0, 3, 5, 0, - 6, 128, 6, 0, 208, 128, - 6, 0, 0, 160, 8, 0, - 0, 3, 3, 0, 1, 128, - 3, 0, 228, 160, 5, 0, - 244, 128, 8, 0, 0, 3, - 3, 0, 2, 128, 4, 0, - 228, 160, 5, 0, 244, 128, - 8, 0, 0, 3, 3, 0, - 4, 128, 5, 0, 228, 160, - 5, 0, 244, 128, 5, 0, - 0, 3, 3, 0, 15, 128, - 3, 0, 228, 128, 1, 0, - 0, 160, 5, 0, 0, 3, - 6, 0, 15, 128, 4, 0, - 0, 128, 3, 0, 228, 128, - 8, 0, 0, 3, 7, 0, - 1, 128, 3, 0, 228, 160, - 5, 0, 228, 128, 8, 0, - 0, 3, 7, 0, 2, 128, - 4, 0, 228, 160, 5, 0, - 228, 128, 8, 0, 0, 3, - 7, 0, 4, 128, 5, 0, - 228, 160, 5, 0, 228, 128, - 1, 0, 0, 2, 7, 0, - 8, 128, 7, 0, 0, 161, - 5, 0, 0, 3, 5, 0, - 15, 128, 7, 0, 228, 128, - 1, 0, 0, 160, 5, 0, - 0, 3, 7, 0, 15, 128, - 4, 0, 0, 128, 5, 0, - 228, 128, 1, 0, 0, 2, - 8, 0, 7, 128, 7, 0, - 228, 160, 2, 0, 0, 3, - 9, 0, 15, 128, 8, 0, - 36, 128, 2, 0, 64, 160, - 5, 0, 0, 3, 9, 0, - 15, 128, 9, 0, 228, 128, - 9, 0, 228, 128, 88, 0, - 0, 4, 6, 0, 15, 128, - 9, 0, 85, 129, 6, 0, - 228, 128, 7, 0, 228, 128, - 1, 0, 0, 2, 7, 0, - 3, 128, 0, 0, 235, 176, - 66, 0, 0, 3, 10, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 66, 0, - 0, 3, 7, 0, 15, 128, - 7, 0, 228, 128, 5, 8, - 228, 160, 5, 0, 0, 3, - 10, 0, 15, 128, 10, 0, - 228, 128, 1, 0, 0, 160, - 5, 0, 0, 3, 11, 0, - 15, 128, 4, 0, 0, 128, - 10, 0, 228, 128, 88, 0, - 0, 4, 6, 0, 15, 128, - 9, 0, 0, 129, 11, 0, - 228, 128, 6, 0, 228, 128, - 1, 0, 0, 2, 11, 0, - 7, 128, 10, 0, 228, 128, - 1, 0, 0, 2, 11, 0, - 8, 128, 1, 0, 0, 160, - 5, 0, 0, 3, 12, 0, - 15, 128, 4, 0, 0, 128, - 11, 0, 228, 128, 5, 0, - 0, 3, 4, 0, 15, 128, - 4, 0, 0, 128, 0, 0, - 228, 160, 88, 0, 0, 4, - 6, 0, 15, 128, 2, 0, - 0, 161, 12, 0, 228, 128, - 6, 0, 228, 128, 88, 0, - 0, 4, 8, 0, 6, 128, - 9, 0, 248, 129, 6, 0, - 85, 160, 6, 0, 170, 160, - 88, 0, 0, 4, 0, 0, - 8, 128, 9, 0, 85, 129, - 7, 0, 0, 160, 8, 0, - 85, 128, 88, 0, 0, 4, - 1, 0, 8, 128, 2, 0, - 85, 161, 8, 0, 0, 128, - 8, 0, 170, 128, 88, 0, - 0, 4, 0, 0, 8, 128, - 9, 0, 0, 129, 7, 0, - 0, 160, 0, 0, 255, 128, - 88, 0, 0, 4, 0, 0, - 8, 128, 2, 0, 0, 161, - 8, 0, 0, 128, 0, 0, - 255, 128, 88, 0, 0, 4, - 4, 0, 15, 128, 0, 0, - 255, 128, 4, 0, 228, 128, - 6, 0, 228, 128, 88, 0, - 0, 4, 3, 0, 15, 128, - 9, 0, 85, 129, 3, 0, - 228, 128, 5, 0, 228, 128, - 88, 0, 0, 4, 3, 0, - 15, 128, 9, 0, 0, 129, - 10, 0, 228, 128, 3, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 15, 128, 2, 0, - 0, 161, 11, 0, 228, 128, - 3, 0, 228, 128, 88, 0, - 0, 4, 3, 0, 15, 128, - 0, 0, 255, 128, 0, 0, - 228, 160, 3, 0, 228, 128, - 88, 0, 0, 4, 3, 0, - 15, 128, 2, 0, 85, 161, - 3, 0, 228, 128, 4, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 15, 128, 1, 0, - 255, 128, 6, 0, 106, 161, - 3, 0, 228, 128, 6, 0, - 0, 2, 0, 0, 8, 128, - 3, 0, 255, 128, 5, 0, - 0, 3, 4, 0, 7, 128, - 0, 0, 255, 128, 3, 0, - 228, 128, 88, 0, 0, 4, - 4, 0, 7, 128, 2, 0, - 255, 161, 3, 0, 228, 128, - 4, 0, 228, 128, 2, 0, - 0, 3, 5, 0, 3, 128, - 4, 0, 233, 129, 4, 0, - 228, 128, 88, 0, 0, 4, - 5, 0, 12, 128, 5, 0, - 0, 128, 4, 0, 68, 128, - 4, 0, 20, 128, 11, 0, - 0, 3, 0, 0, 8, 128, - 5, 0, 170, 128, 4, 0, - 170, 128, 10, 0, 0, 3, - 1, 0, 8, 128, 4, 0, - 170, 128, 5, 0, 255, 128, - 2, 0, 0, 3, 6, 0, - 8, 128, 0, 0, 255, 128, - 1, 0, 255, 129, 6, 0, - 0, 2, 0, 0, 8, 128, - 7, 0, 255, 128, 5, 0, - 0, 3, 8, 0, 7, 128, - 0, 0, 255, 128, 7, 0, - 228, 128, 4, 0, 0, 4, - 5, 0, 12, 128, 7, 0, - 100, 128, 0, 0, 255, 128, - 8, 0, 132, 129, 5, 0, - 0, 3, 9, 0, 3, 128, - 6, 0, 255, 128, 5, 0, - 238, 128, 4, 0, 0, 4, - 10, 0, 15, 128, 7, 0, - 129, 128, 0, 0, 255, 128, - 8, 0, 88, 129, 6, 0, - 0, 2, 1, 0, 8, 128, - 10, 0, 0, 128, 5, 0, - 0, 3, 6, 0, 2, 128, - 1, 0, 255, 128, 9, 0, - 0, 128, 88, 0, 0, 4, - 1, 0, 6, 128, 10, 0, - 170, 128, 6, 0, 170, 161, - 6, 0, 220, 128, 5, 0, - 0, 3, 11, 0, 15, 128, - 6, 0, 255, 128, 10, 0, - 228, 128, 6, 0, 0, 2, - 1, 0, 8, 128, 5, 0, - 255, 128, 5, 0, 0, 3, - 6, 0, 1, 128, 1, 0, - 255, 128, 11, 0, 85, 128, - 88, 0, 0, 4, 2, 0, - 3, 128, 10, 0, 255, 128, - 6, 0, 170, 161, 6, 0, - 236, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 5, 0, - 170, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 5, 0, 170, 128, 5, 0, - 0, 3, 6, 0, 4, 128, - 1, 0, 255, 128, 11, 0, - 0, 128, 88, 0, 0, 4, - 0, 0, 6, 128, 10, 0, - 85, 128, 6, 0, 170, 161, - 6, 0, 248, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 10, 0, 255, 128, 0, 0, - 228, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 1, 0, - 2, 128, 6, 0, 170, 161, - 1, 0, 0, 2, 2, 0, - 2, 128, 6, 0, 170, 161, - 1, 0, 0, 2, 12, 0, - 4, 128, 6, 0, 170, 161, - 6, 0, 0, 2, 1, 0, - 8, 128, 10, 0, 170, 128, - 5, 0, 0, 3, 6, 0, - 2, 128, 1, 0, 255, 128, - 11, 0, 255, 128, 88, 0, - 0, 4, 2, 0, 5, 128, - 10, 0, 0, 128, 6, 0, - 170, 161, 6, 0, 215, 128, - 6, 0, 0, 2, 1, 0, - 8, 128, 10, 0, 85, 128, - 5, 0, 0, 3, 6, 0, - 1, 128, 1, 0, 255, 128, - 9, 0, 85, 128, 88, 0, - 0, 4, 12, 0, 3, 128, - 5, 0, 170, 128, 6, 0, - 170, 161, 6, 0, 227, 128, - 88, 0, 0, 4, 2, 0, - 7, 128, 10, 0, 255, 128, - 2, 0, 228, 128, 12, 0, - 228, 128, 6, 0, 0, 2, - 1, 0, 8, 128, 10, 0, - 255, 128, 5, 0, 0, 3, - 6, 0, 4, 128, 1, 0, - 255, 128, 11, 0, 170, 128, - 88, 0, 0, 4, 1, 0, - 5, 128, 5, 0, 255, 128, - 6, 0, 170, 161, 6, 0, - 246, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 5, 0, - 170, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 10, 0, 0, 128, 0, 0, - 228, 128, 1, 0, 228, 128, - 88, 0, 0, 4, 1, 0, - 3, 128, 10, 0, 170, 128, - 8, 0, 228, 128, 8, 0, - 225, 128, 8, 0, 0, 3, - 4, 0, 8, 128, 13, 0, - 228, 160, 0, 0, 228, 128, - 8, 0, 0, 3, 8, 0, - 8, 128, 13, 0, 228, 160, - 8, 0, 228, 128, 2, 0, - 0, 3, 4, 0, 8, 128, - 4, 0, 255, 129, 8, 0, - 255, 128, 2, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 4, 0, 255, 128, - 2, 0, 0, 3, 4, 0, - 8, 128, 0, 0, 85, 129, - 0, 0, 0, 128, 88, 0, - 0, 4, 1, 0, 12, 128, - 4, 0, 255, 128, 0, 0, - 20, 128, 0, 0, 68, 128, - 10, 0, 0, 3, 4, 0, - 8, 128, 0, 0, 170, 128, - 1, 0, 170, 128, 11, 0, - 0, 3, 2, 0, 1, 128, - 1, 0, 255, 128, 0, 0, - 170, 128, 8, 0, 0, 3, - 1, 0, 4, 128, 13, 0, - 228, 160, 0, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 8, 128, 4, 0, 255, 129, - 1, 0, 170, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 2, 0, - 0, 3, 2, 0, 14, 128, - 0, 0, 144, 128, 1, 0, - 170, 129, 5, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 170, 128, 2, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 14, 128, 2, 0, 228, 128, - 1, 0, 255, 128, 1, 0, - 170, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 4, 0, - 255, 128, 0, 0, 228, 128, - 2, 0, 249, 128, 2, 0, - 0, 3, 2, 0, 14, 128, - 1, 0, 170, 129, 0, 0, - 144, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 170, 129, 7, 0, 0, 161, - 5, 0, 0, 3, 2, 0, - 14, 128, 1, 0, 255, 128, - 2, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 8, 128, - 1, 0, 170, 129, 2, 0, - 0, 128, 2, 0, 0, 3, - 4, 0, 8, 128, 2, 0, - 0, 129, 7, 0, 0, 161, - 6, 0, 0, 2, 1, 0, - 8, 128, 1, 0, 255, 128, - 4, 0, 0, 4, 2, 0, - 7, 128, 2, 0, 249, 128, - 1, 0, 255, 128, 1, 0, - 170, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 4, 0, - 255, 128, 0, 0, 228, 128, - 2, 0, 228, 128, 1, 0, - 0, 2, 4, 0, 8, 128, - 2, 0, 170, 160, 2, 0, - 0, 3, 1, 0, 12, 128, - 4, 0, 255, 128, 11, 0, - 228, 160, 5, 0, 0, 3, - 1, 0, 12, 128, 1, 0, - 228, 128, 1, 0, 228, 128, - 8, 0, 0, 3, 2, 0, - 1, 128, 13, 0, 228, 160, - 4, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 2, 128, - 8, 0, 255, 129, 2, 0, - 0, 128, 2, 0, 0, 3, - 2, 0, 1, 128, 2, 0, - 0, 129, 8, 0, 255, 128, - 2, 0, 0, 3, 2, 0, - 13, 128, 2, 0, 0, 128, - 4, 0, 148, 128, 4, 0, - 0, 4, 6, 0, 7, 128, - 7, 0, 228, 128, 0, 0, - 255, 128, 2, 0, 85, 128, - 2, 0, 0, 3, 6, 0, - 8, 128, 6, 0, 85, 129, - 6, 0, 0, 128, 88, 0, - 0, 4, 5, 0, 12, 128, - 6, 0, 255, 128, 6, 0, - 20, 128, 6, 0, 68, 128, - 10, 0, 0, 3, 2, 0, - 2, 128, 6, 0, 170, 128, - 5, 0, 170, 128, 11, 0, - 0, 3, 9, 0, 1, 128, - 5, 0, 255, 128, 6, 0, - 170, 128, 8, 0, 0, 3, - 6, 0, 8, 128, 13, 0, - 228, 160, 6, 0, 228, 128, - 2, 0, 0, 3, 5, 0, - 4, 128, 2, 0, 85, 129, - 6, 0, 255, 128, 6, 0, - 0, 2, 5, 0, 4, 128, - 5, 0, 170, 128, 2, 0, - 0, 3, 9, 0, 14, 128, - 6, 0, 255, 129, 6, 0, - 144, 128, 5, 0, 0, 3, - 9, 0, 14, 128, 6, 0, - 255, 128, 9, 0, 228, 128, - 4, 0, 0, 4, 9, 0, - 14, 128, 9, 0, 228, 128, - 5, 0, 170, 128, 6, 0, - 255, 128, 88, 0, 0, 4, - 6, 0, 7, 128, 2, 0, - 85, 128, 6, 0, 228, 128, - 9, 0, 249, 128, 2, 0, - 0, 3, 9, 0, 14, 128, - 6, 0, 255, 129, 6, 0, - 144, 128, 2, 0, 0, 3, - 2, 0, 2, 128, 6, 0, - 255, 129, 7, 0, 0, 161, - 5, 0, 0, 3, 9, 0, - 14, 128, 2, 0, 85, 128, - 9, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 2, 128, - 6, 0, 255, 129, 9, 0, - 0, 128, 2, 0, 0, 3, - 5, 0, 4, 128, 9, 0, - 0, 129, 7, 0, 0, 161, - 6, 0, 0, 2, 5, 0, - 8, 128, 2, 0, 85, 128, - 4, 0, 0, 4, 9, 0, - 7, 128, 9, 0, 249, 128, - 5, 0, 255, 128, 6, 0, - 255, 128, 88, 0, 0, 4, - 6, 0, 7, 128, 5, 0, - 170, 128, 6, 0, 228, 128, - 9, 0, 228, 128, 88, 0, - 0, 4, 6, 0, 7, 128, - 1, 0, 255, 129, 6, 0, - 228, 128, 6, 0, 170, 161, - 2, 0, 0, 3, 1, 0, - 8, 128, 2, 0, 170, 129, - 2, 0, 0, 128, 88, 0, - 0, 4, 5, 0, 12, 128, - 1, 0, 255, 128, 2, 0, - 36, 128, 2, 0, 132, 128, - 10, 0, 0, 3, 1, 0, - 8, 128, 2, 0, 255, 128, - 5, 0, 170, 128, 11, 0, - 0, 3, 6, 0, 8, 128, - 5, 0, 255, 128, 2, 0, - 255, 128, 8, 0, 0, 3, - 2, 0, 2, 128, 13, 0, - 228, 160, 2, 0, 248, 128, - 2, 0, 0, 3, 5, 0, - 4, 128, 1, 0, 255, 129, - 2, 0, 85, 128, 6, 0, - 0, 2, 5, 0, 4, 128, - 5, 0, 170, 128, 2, 0, - 0, 3, 9, 0, 7, 128, - 2, 0, 85, 129, 2, 0, - 248, 128, 5, 0, 0, 3, - 9, 0, 7, 128, 2, 0, - 85, 128, 9, 0, 228, 128, - 4, 0, 0, 4, 9, 0, - 7, 128, 9, 0, 228, 128, - 5, 0, 170, 128, 2, 0, - 85, 128, 88, 0, 0, 4, - 2, 0, 13, 128, 1, 0, - 255, 128, 2, 0, 228, 128, - 9, 0, 148, 128, 2, 0, - 0, 3, 9, 0, 7, 128, - 2, 0, 85, 129, 2, 0, - 248, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 2, 0, - 85, 129, 7, 0, 0, 161, - 5, 0, 0, 3, 9, 0, - 7, 128, 1, 0, 255, 128, - 9, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 8, 128, - 2, 0, 85, 129, 6, 0, - 255, 128, 2, 0, 0, 3, - 6, 0, 8, 128, 6, 0, - 255, 129, 7, 0, 0, 161, - 6, 0, 0, 2, 1, 0, - 8, 128, 1, 0, 255, 128, - 4, 0, 0, 4, 9, 0, - 7, 128, 9, 0, 228, 128, - 1, 0, 255, 128, 2, 0, - 85, 128, 88, 0, 0, 4, - 2, 0, 7, 128, 6, 0, - 255, 128, 2, 0, 248, 128, - 9, 0, 228, 128, 88, 0, - 0, 4, 2, 0, 7, 128, - 1, 0, 170, 129, 2, 0, - 228, 128, 6, 0, 228, 128, - 2, 0, 0, 3, 6, 0, - 15, 128, 4, 0, 255, 128, - 12, 0, 228, 160, 5, 0, - 0, 3, 6, 0, 15, 128, - 6, 0, 228, 128, 6, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 6, 0, - 255, 129, 0, 0, 228, 128, - 2, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 15, 128, - 4, 0, 96, 129, 4, 0, - 137, 128, 1, 0, 0, 2, - 9, 0, 2, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 10, 0, 2, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 11, 0, 4, 128, 6, 0, - 170, 161, 6, 0, 0, 2, - 6, 0, 8, 128, 2, 0, - 170, 128, 11, 0, 0, 3, - 9, 0, 8, 128, 1, 0, - 0, 128, 8, 0, 170, 128, - 10, 0, 0, 3, 10, 0, - 8, 128, 8, 0, 170, 128, - 1, 0, 85, 128, 2, 0, - 0, 3, 1, 0, 8, 128, - 9, 0, 255, 128, 10, 0, - 255, 129, 5, 0, 0, 3, - 5, 0, 12, 128, 1, 0, - 255, 128, 5, 0, 68, 128, - 5, 0, 0, 3, 1, 0, - 1, 128, 6, 0, 255, 128, - 5, 0, 255, 128, 88, 0, - 0, 4, 11, 0, 3, 128, - 2, 0, 85, 128, 6, 0, - 170, 161, 1, 0, 227, 128, - 6, 0, 0, 2, 5, 0, - 8, 128, 5, 0, 0, 128, - 5, 0, 0, 3, 12, 0, - 15, 128, 1, 0, 255, 128, - 2, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 2, 128, - 5, 0, 255, 128, 12, 0, - 255, 128, 88, 0, 0, 4, - 10, 0, 5, 128, 2, 0, - 0, 128, 6, 0, 170, 161, - 1, 0, 215, 128, 88, 0, - 0, 4, 10, 0, 7, 128, - 2, 0, 255, 128, 10, 0, - 228, 128, 11, 0, 228, 128, - 6, 0, 0, 2, 5, 0, - 8, 128, 2, 0, 255, 128, - 5, 0, 0, 3, 1, 0, - 4, 128, 5, 0, 255, 128, - 5, 0, 170, 128, 88, 0, - 0, 4, 9, 0, 5, 128, - 5, 0, 85, 128, 6, 0, - 170, 161, 1, 0, 246, 128, - 88, 0, 0, 4, 9, 0, - 7, 128, 2, 0, 85, 128, - 9, 0, 228, 128, 10, 0, - 228, 128, 1, 0, 0, 2, - 10, 0, 1, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 11, 0, 1, 128, 6, 0, - 170, 161, 1, 0, 0, 2, - 13, 0, 4, 128, 6, 0, - 170, 161, 6, 0, 0, 2, - 6, 0, 8, 128, 2, 0, - 0, 128, 5, 0, 0, 3, - 1, 0, 2, 128, 6, 0, - 255, 128, 12, 0, 85, 128, - 88, 0, 0, 4, 11, 0, - 6, 128, 5, 0, 0, 128, - 6, 0, 170, 161, 1, 0, - 220, 128, 6, 0, 0, 2, - 6, 0, 8, 128, 5, 0, - 85, 128, 5, 0, 0, 3, - 1, 0, 1, 128, 6, 0, - 255, 128, 12, 0, 170, 128, - 88, 0, 0, 4, 13, 0, - 3, 128, 2, 0, 255, 128, - 6, 0, 170, 161, 1, 0, - 236, 128, 88, 0, 0, 4, - 5, 0, 7, 128, 2, 0, - 85, 128, 11, 0, 228, 128, - 13, 0, 228, 128, 6, 0, - 0, 2, 5, 0, 8, 128, - 2, 0, 85, 128, 5, 0, - 0, 3, 1, 0, 4, 128, - 5, 0, 255, 128, 12, 0, - 0, 128, 88, 0, 0, 4, - 10, 0, 6, 128, 2, 0, - 170, 128, 6, 0, 170, 161, - 1, 0, 248, 128, 88, 0, - 0, 4, 1, 0, 7, 128, - 2, 0, 255, 128, 10, 0, - 228, 128, 5, 0, 228, 128, - 88, 0, 0, 4, 1, 0, - 7, 128, 2, 0, 0, 128, - 1, 0, 228, 128, 9, 0, - 228, 128, 8, 0, 0, 3, - 1, 0, 8, 128, 13, 0, - 228, 160, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 129, - 8, 0, 255, 128, 2, 0, - 0, 3, 1, 0, 7, 128, - 1, 0, 255, 128, 1, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 85, 129, 1, 0, 0, 128, - 88, 0, 0, 4, 2, 0, - 3, 128, 1, 0, 255, 128, - 1, 0, 225, 128, 1, 0, - 228, 128, 10, 0, 0, 3, - 6, 0, 8, 128, 1, 0, - 170, 128, 2, 0, 0, 128, - 11, 0, 0, 3, 8, 0, - 8, 128, 2, 0, 85, 128, - 1, 0, 170, 128, 8, 0, - 0, 3, 1, 0, 8, 128, - 13, 0, 228, 160, 1, 0, - 228, 128, 2, 0, 0, 3, - 2, 0, 1, 128, 6, 0, - 255, 129, 1, 0, 255, 128, - 6, 0, 0, 2, 2, 0, - 1, 128, 2, 0, 0, 128, - 2, 0, 0, 3, 2, 0, - 14, 128, 1, 0, 255, 129, - 1, 0, 144, 128, 5, 0, - 0, 3, 2, 0, 14, 128, - 1, 0, 255, 128, 2, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 7, 128, 2, 0, - 249, 128, 2, 0, 0, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 7, 128, - 6, 0, 255, 128, 1, 0, - 228, 128, 2, 0, 228, 128, - 2, 0, 0, 3, 2, 0, - 7, 128, 1, 0, 255, 129, - 1, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 8, 128, - 1, 0, 255, 129, 7, 0, - 0, 161, 5, 0, 0, 3, - 2, 0, 7, 128, 2, 0, - 255, 128, 2, 0, 228, 128, - 2, 0, 0, 3, 2, 0, - 8, 128, 1, 0, 255, 129, - 8, 0, 255, 128, 2, 0, - 0, 3, 6, 0, 8, 128, - 8, 0, 255, 129, 7, 0, - 0, 161, 6, 0, 0, 2, - 2, 0, 8, 128, 2, 0, - 255, 128, 4, 0, 0, 4, - 2, 0, 7, 128, 2, 0, - 228, 128, 2, 0, 255, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 7, 128, - 6, 0, 255, 128, 1, 0, - 228, 128, 2, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 6, 0, 170, 129, - 1, 0, 228, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 7, 128, 7, 0, - 228, 128, 0, 0, 255, 128, - 4, 0, 228, 128, 5, 0, - 0, 3, 2, 0, 7, 128, - 4, 0, 228, 128, 8, 0, - 228, 128, 4, 0, 0, 4, - 5, 0, 7, 128, 2, 0, - 228, 128, 7, 0, 85, 160, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 7, 128, - 8, 0, 228, 128, 4, 0, - 228, 129, 1, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 6, 0, 85, 129, - 5, 0, 228, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 5, 0, 7, 128, 7, 0, - 228, 128, 0, 0, 255, 128, - 4, 0, 228, 129, 35, 0, - 0, 2, 5, 0, 7, 128, - 5, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 6, 0, 0, 129, 5, 0, - 228, 128, 0, 0, 228, 128, - 2, 0, 0, 3, 5, 0, - 3, 128, 4, 0, 233, 129, - 6, 0, 255, 161, 4, 0, - 0, 4, 6, 0, 7, 128, - 4, 0, 228, 128, 10, 0, - 170, 160, 10, 0, 255, 160, - 4, 0, 0, 4, 1, 0, - 8, 128, 7, 0, 170, 128, - 0, 0, 255, 129, 10, 0, - 85, 160, 4, 0, 0, 4, - 9, 0, 7, 128, 8, 0, - 228, 128, 11, 0, 0, 160, - 11, 0, 85, 160, 4, 0, - 0, 4, 9, 0, 7, 128, - 9, 0, 228, 128, 8, 0, - 228, 128, 7, 0, 170, 161, - 5, 0, 0, 3, 9, 0, - 7, 128, 8, 0, 228, 128, - 9, 0, 228, 128, 7, 0, - 0, 2, 2, 0, 8, 128, - 8, 0, 170, 128, 6, 0, - 0, 2, 2, 0, 8, 128, - 2, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 8, 128, - 1, 0, 255, 128, 9, 0, - 170, 128, 2, 0, 255, 128, - 4, 0, 0, 4, 1, 0, - 8, 128, 7, 0, 170, 128, - 0, 0, 255, 129, 1, 0, - 255, 128, 4, 0, 0, 4, - 1, 0, 8, 128, 6, 0, - 170, 128, 1, 0, 255, 128, - 8, 0, 170, 128, 4, 0, - 0, 4, 10, 0, 7, 128, - 4, 0, 228, 128, 7, 0, - 85, 160, 7, 0, 0, 161, - 5, 0, 0, 3, 10, 0, - 7, 128, 8, 0, 228, 128, - 10, 0, 228, 128, 4, 0, - 0, 4, 11, 0, 15, 128, - 7, 0, 73, 128, 0, 0, - 255, 129, 10, 0, 80, 160, - 4, 0, 0, 4, 5, 0, - 12, 128, 10, 0, 148, 128, - 11, 0, 68, 129, 8, 0, - 148, 128, 88, 0, 0, 4, - 12, 0, 4, 128, 5, 0, - 85, 128, 5, 0, 255, 128, - 1, 0, 255, 128, 7, 0, - 0, 2, 1, 0, 8, 128, - 8, 0, 85, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 8, 128, - 11, 0, 255, 128, 9, 0, - 85, 128, 1, 0, 255, 128, - 4, 0, 0, 4, 1, 0, - 8, 128, 7, 0, 85, 128, - 0, 0, 255, 129, 1, 0, - 255, 128, 4, 0, 0, 4, - 1, 0, 8, 128, 6, 0, - 85, 128, 1, 0, 255, 128, - 8, 0, 85, 128, 88, 0, - 0, 4, 12, 0, 2, 128, - 5, 0, 0, 128, 5, 0, - 170, 128, 1, 0, 255, 128, - 2, 0, 0, 3, 13, 0, - 15, 128, 4, 0, 36, 129, - 6, 0, 213, 161, 7, 0, - 0, 2, 1, 0, 8, 128, - 8, 0, 0, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 8, 128, - 11, 0, 170, 128, 9, 0, - 0, 128, 1, 0, 255, 128, - 4, 0, 0, 4, 1, 0, - 8, 128, 7, 0, 0, 128, - 0, 0, 255, 129, 1, 0, - 255, 128, 4, 0, 0, 4, - 1, 0, 8, 128, 6, 0, - 0, 128, 1, 0, 255, 128, - 8, 0, 0, 128, 4, 0, - 0, 4, 6, 0, 15, 128, - 7, 0, 36, 128, 0, 0, - 255, 129, 6, 0, 127, 161, - 4, 0, 0, 4, 7, 0, - 7, 128, 7, 0, 228, 128, - 0, 0, 255, 128, 7, 0, - 0, 160, 5, 0, 0, 3, - 7, 0, 7, 128, 7, 0, - 228, 128, 7, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 8, 128, 10, 0, 0, 128, - 6, 0, 255, 129, 8, 0, - 0, 128, 88, 0, 0, 4, - 12, 0, 1, 128, 13, 0, - 255, 128, 0, 0, 255, 128, - 1, 0, 255, 128, 2, 0, - 0, 3, 9, 0, 15, 128, - 4, 0, 255, 128, 9, 0, - 228, 160, 5, 0, 0, 3, - 9, 0, 15, 128, 9, 0, - 228, 128, 9, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 9, 0, 255, 129, - 12, 0, 228, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 10, 0, 7, 128, 8, 0, - 228, 128, 8, 0, 228, 128, - 4, 0, 0, 4, 12, 0, - 7, 128, 4, 0, 228, 128, - 7, 0, 85, 161, 10, 0, - 228, 128, 2, 0, 0, 3, - 12, 0, 7, 128, 12, 0, - 228, 128, 7, 0, 0, 160, - 4, 0, 0, 4, 14, 0, - 7, 128, 4, 0, 228, 128, - 10, 0, 228, 129, 12, 0, - 228, 128, 5, 0, 0, 3, - 10, 0, 7, 128, 4, 0, - 228, 128, 10, 0, 228, 128, - 2, 0, 0, 3, 15, 0, - 7, 128, 4, 0, 228, 128, - 4, 0, 228, 128, 5, 0, - 0, 3, 16, 0, 7, 128, - 8, 0, 228, 128, 15, 0, - 228, 128, 4, 0, 0, 4, - 12, 0, 7, 128, 15, 0, - 228, 128, 8, 0, 228, 129, - 12, 0, 228, 128, 88, 0, - 0, 4, 6, 0, 7, 128, - 6, 0, 228, 128, 10, 0, - 228, 128, 12, 0, 228, 128, - 88, 0, 0, 4, 5, 0, - 6, 128, 5, 0, 208, 128, - 16, 0, 228, 128, 14, 0, - 228, 128, 88, 0, 0, 4, - 5, 0, 1, 128, 13, 0, - 255, 128, 16, 0, 0, 128, - 14, 0, 0, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 9, 0, 170, 129, 5, 0, - 228, 128, 0, 0, 228, 128, - 6, 0, 0, 2, 0, 0, - 8, 128, 4, 0, 0, 128, - 4, 0, 0, 4, 0, 0, - 8, 128, 6, 0, 255, 128, - 0, 0, 255, 129, 7, 0, - 0, 161, 11, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 6, 0, 170, 161, - 5, 0, 0, 3, 5, 0, - 7, 128, 4, 0, 228, 128, - 4, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 8, 128, - 5, 0, 0, 129, 6, 0, - 170, 161, 1, 0, 255, 128, - 88, 0, 0, 4, 10, 0, - 1, 128, 7, 0, 0, 129, - 7, 0, 0, 161, 0, 0, - 255, 128, 6, 0, 0, 2, - 0, 0, 8, 128, 4, 0, - 85, 128, 4, 0, 0, 4, - 0, 0, 8, 128, 11, 0, - 0, 128, 0, 0, 255, 129, - 7, 0, 0, 161, 11, 0, - 0, 3, 1, 0, 8, 128, - 0, 0, 255, 128, 6, 0, - 170, 161, 88, 0, 0, 4, - 0, 0, 8, 128, 5, 0, - 85, 129, 6, 0, 170, 161, - 1, 0, 255, 128, 88, 0, - 0, 4, 10, 0, 2, 128, - 7, 0, 85, 129, 7, 0, - 0, 161, 0, 0, 255, 128, - 6, 0, 0, 2, 0, 0, - 8, 128, 4, 0, 170, 128, - 4, 0, 0, 4, 0, 0, - 8, 128, 11, 0, 85, 128, - 0, 0, 255, 129, 7, 0, - 0, 161, 11, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 6, 0, 170, 161, - 88, 0, 0, 4, 0, 0, - 8, 128, 5, 0, 170, 129, - 6, 0, 170, 161, 1, 0, - 255, 128, 88, 0, 0, 4, - 10, 0, 4, 128, 7, 0, - 170, 129, 7, 0, 0, 161, - 0, 0, 255, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 9, 0, 85, 129, 10, 0, - 228, 128, 0, 0, 228, 128, - 2, 0, 0, 3, 5, 0, - 7, 128, 4, 0, 228, 128, - 7, 0, 0, 160, 5, 0, - 0, 3, 5, 0, 7, 128, - 5, 0, 228, 128, 5, 0, - 228, 128, 6, 0, 0, 2, - 0, 0, 8, 128, 13, 0, - 0, 128, 5, 0, 0, 3, - 0, 0, 8, 128, 0, 0, - 255, 128, 8, 0, 0, 128, - 10, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 7, 0, 0, 161, 88, 0, - 0, 4, 0, 0, 8, 128, - 5, 0, 0, 129, 7, 0, - 0, 161, 1, 0, 255, 128, - 5, 0, 0, 3, 7, 0, - 7, 128, 8, 0, 228, 128, - 8, 0, 228, 128, 88, 0, - 0, 4, 10, 0, 1, 128, - 7, 0, 0, 129, 6, 0, - 170, 161, 0, 0, 255, 128, - 6, 0, 0, 2, 0, 0, - 8, 128, 13, 0, 85, 128, - 6, 0, 0, 2, 1, 0, - 8, 128, 13, 0, 170, 128, - 5, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 128, - 8, 0, 170, 128, 10, 0, - 0, 3, 2, 0, 8, 128, - 1, 0, 255, 128, 7, 0, - 0, 161, 88, 0, 0, 4, - 1, 0, 8, 128, 5, 0, - 170, 129, 7, 0, 0, 161, - 2, 0, 255, 128, 88, 0, - 0, 4, 10, 0, 4, 128, - 7, 0, 170, 129, 6, 0, - 170, 161, 1, 0, 255, 128, - 5, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 128, - 8, 0, 85, 128, 10, 0, - 0, 3, 1, 0, 8, 128, - 0, 0, 255, 128, 7, 0, - 0, 161, 88, 0, 0, 4, - 0, 0, 8, 128, 5, 0, - 85, 129, 7, 0, 0, 161, - 1, 0, 255, 128, 88, 0, - 0, 4, 10, 0, 2, 128, - 7, 0, 85, 129, 6, 0, - 170, 161, 0, 0, 255, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 9, 0, 0, 129, - 10, 0, 228, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 5, 0, 15, 128, 4, 0, - 255, 128, 8, 0, 228, 160, - 5, 0, 0, 3, 5, 0, - 15, 128, 5, 0, 228, 128, - 5, 0, 228, 128, 11, 0, - 0, 3, 7, 0, 7, 128, - 8, 0, 228, 128, 4, 0, - 228, 128, 10, 0, 0, 3, - 9, 0, 7, 128, 4, 0, - 228, 128, 8, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 5, 0, 255, 129, - 7, 0, 228, 128, 0, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 5, 0, - 170, 129, 9, 0, 228, 128, - 0, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 5, 0, 85, 129, 6, 0, - 228, 128, 0, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 5, 0, 0, 129, - 1, 0, 228, 128, 0, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 2, 0, - 170, 161, 2, 0, 228, 128, - 0, 0, 228, 128, 18, 0, - 0, 4, 1, 0, 7, 128, - 7, 0, 255, 128, 0, 0, - 228, 128, 4, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 8, 128, 7, 0, 255, 128, - 7, 0, 255, 128, 5, 0, - 0, 3, 0, 0, 7, 128, - 3, 0, 255, 128, 1, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 1, 128, 3, 0, - 255, 128, 3, 0, 255, 128, - 1, 0, 0, 2, 0, 0, - 8, 128, 3, 0, 255, 128, - 88, 0, 0, 4, 0, 0, - 15, 128, 1, 0, 0, 129, - 6, 0, 170, 161, 0, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 15, 128, 1, 0, - 255, 129, 3, 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, - 228, 41, 0, 0, 64, 0, - 0, 0, 121, 10, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 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, 88, 24, 0, 4, - 0, 112, 16, 0, 1, 0, - 0, 0, 85, 85, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 2, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 3, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 5, 0, - 0, 0, 85, 85, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 6, 0, 0, 0, - 85, 85, 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, 98, 16, - 0, 3, 114, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 22, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 230, 26, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 6, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 31, 0, 0, 4, 26, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 31, 0, - 0, 4, 10, 128, 32, 0, - 0, 0, 0, 0, 2, 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, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 6, 130, 0, 16, 0, - 1, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 18, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 255, 255, 255, 255, - 18, 0, 0, 1, 32, 0, - 0, 8, 34, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 1, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 31, 0, 4, 3, 26, 0, - 16, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 3, 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, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 255, 18, 0, - 0, 1, 32, 0, 0, 8, - 34, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 2, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 31, 0, - 4, 3, 26, 0, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 18, 0, 16, 0, - 3, 0, 0, 0, 10, 0, - 16, 0, 3, 0, 0, 0, - 1, 64, 0, 0, 18, 131, - 128, 189, 69, 0, 0, 9, - 242, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 2, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 34, 0, 16, 0, 3, 0, - 0, 0, 10, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 115, 128, 0, 191, - 69, 0, 0, 9, 242, 0, - 16, 0, 4, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 3, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 66, 0, - 16, 0, 3, 0, 0, 0, - 10, 0, 16, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 115, 128, 0, 191, 16, 0, - 0, 8, 18, 0, 16, 0, - 4, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 8, 34, 0, - 16, 0, 4, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 4, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 4, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 255, 18, 0, - 0, 1, 32, 0, 0, 8, - 18, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 4, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 31, 0, - 4, 3, 10, 0, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 18, 0, 16, 0, - 3, 0, 0, 0, 10, 0, - 16, 0, 3, 0, 0, 0, - 1, 64, 0, 0, 18, 131, - 128, 189, 69, 0, 0, 9, - 242, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 2, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 10, - 98, 0, 16, 0, 3, 0, - 0, 0, 6, 1, 16, 0, - 4, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 115, 128, 0, 191, 115, 128, - 0, 191, 0, 0, 0, 0, - 16, 0, 0, 8, 18, 0, - 16, 0, 4, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 4, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, - 4, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 54, 0, 0, 5, 130, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 21, 0, - 0, 1, 21, 0, 0, 1, - 21, 0, 0, 1, 21, 0, - 0, 1, 55, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 18, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 255, 255, - 255, 255, 18, 0, 0, 1, - 32, 0, 0, 8, 18, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 1, 0, - 0, 0, 26, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 31, 0, 4, 3, - 10, 0, 16, 0, 2, 0, - 0, 0, 31, 0, 0, 4, - 10, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 3, 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, 8, 114, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 14, 0, 0, 7, - 98, 0, 16, 0, 2, 0, - 0, 0, 6, 17, 16, 0, - 2, 0, 0, 0, 166, 26, - 16, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 4, 0, 0, 0, - 150, 5, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 5, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 130, 0, - 16, 0, 3, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 6, 0, 16, 0, - 4, 0, 0, 0, 54, 0, - 0, 5, 34, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 255, 255, 255, 255, - 18, 0, 0, 1, 32, 0, - 0, 8, 66, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 1, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 31, 0, 4, 3, 42, 0, - 16, 0, 2, 0, 0, 0, - 14, 0, 0, 7, 194, 0, - 16, 0, 2, 0, 0, 0, - 6, 20, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 3, 0, 0, 0, 230, 10, - 16, 0, 2, 0, 0, 0, - 70, 126, 16, 0, 5, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 4, 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, 8, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 3, 0, - 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 54, 0, - 0, 5, 34, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 255, 255, 255, 255, - 18, 0, 0, 1, 32, 0, - 0, 8, 66, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 2, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 31, 0, 4, 3, 42, 0, - 16, 0, 2, 0, 0, 0, - 14, 0, 0, 7, 194, 0, - 16, 0, 2, 0, 0, 0, - 6, 20, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 3, 0, 0, 0, 230, 10, - 16, 0, 2, 0, 0, 0, - 70, 126, 16, 0, 5, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 18, 0, 16, 0, - 4, 0, 0, 0, 10, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 18, 131, - 128, 189, 69, 0, 0, 9, - 242, 0, 16, 0, 5, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 2, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 34, 0, 16, 0, 4, 0, - 0, 0, 10, 0, 16, 0, - 5, 0, 0, 0, 1, 64, - 0, 0, 115, 128, 0, 191, - 69, 0, 0, 9, 242, 0, - 16, 0, 5, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 3, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 66, 0, - 16, 0, 4, 0, 0, 0, - 10, 0, 16, 0, 5, 0, - 0, 0, 1, 64, 0, 0, - 115, 128, 0, 191, 16, 0, - 0, 8, 18, 0, 16, 0, - 5, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 16, 0, 0, 8, 34, 0, - 16, 0, 5, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 5, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 5, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 8, 242, 0, - 16, 0, 4, 0, 0, 0, - 70, 14, 16, 0, 5, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 242, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 3, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 54, 0, 0, 5, 34, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 255, 255, - 255, 255, 18, 0, 0, 1, - 32, 0, 0, 8, 34, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 4, 0, - 0, 0, 10, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 31, 0, 4, 3, - 26, 0, 16, 0, 2, 0, - 0, 0, 14, 0, 0, 7, - 194, 0, 16, 0, 2, 0, - 0, 0, 6, 20, 16, 0, - 2, 0, 0, 0, 166, 26, - 16, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 3, 0, 0, 0, - 230, 10, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 5, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 4, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 1, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 18, 0, - 16, 0, 4, 0, 0, 0, - 10, 0, 16, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 18, 131, 128, 189, 69, 0, - 0, 9, 242, 0, 16, 0, - 5, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 2, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 10, 98, 0, 16, 0, - 4, 0, 0, 0, 6, 1, - 16, 0, 5, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 115, 128, 0, 191, - 115, 128, 0, 191, 0, 0, - 0, 0, 16, 0, 0, 8, - 18, 0, 16, 0, 5, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, - 5, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 16, 0, 0, 8, 66, 0, - 16, 0, 5, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 5, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 8, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 5, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 3, 0, - 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 21, 0, - 0, 1, 21, 0, 0, 1, - 21, 0, 0, 1, 21, 0, - 0, 1, 31, 0, 0, 3, - 26, 0, 16, 0, 2, 0, - 0, 0, 14, 0, 0, 7, - 98, 0, 16, 0, 2, 0, - 0, 0, 6, 17, 16, 0, - 2, 0, 0, 0, 166, 26, - 16, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 3, 0, 0, 0, - 150, 5, 16, 0, 2, 0, - 0, 0, 70, 126, 16, 0, - 5, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 21, 0, 0, 1, - 21, 0, 0, 1, 21, 0, - 0, 1, 55, 0, 0, 12, - 242, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 128, 63, 24, 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, - 31, 0, 4, 3, 10, 0, - 16, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 21, 0, 0, 1, 24, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 0, 1, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 31, 0, 4, 3, - 10, 0, 16, 0, 2, 0, - 0, 0, 54, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 21, 0, 0, 1, - 14, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 55, 0, 0, 10, - 114, 0, 16, 0, 1, 0, - 0, 0, 246, 143, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 3, 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, 4, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 29, 0, 0, 10, 242, 0, - 16, 0, 5, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, - 128, 62, 70, 2, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 7, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 6, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 8, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 12, 114, 0, 16, 0, - 9, 0, 0, 0, 70, 2, - 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, 0, 70, 2, 16, 0, - 6, 0, 0, 0, 0, 0, - 0, 10, 114, 0, 16, 0, - 9, 0, 0, 0, 70, 2, - 16, 0, 9, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 191, 0, 0, 128, 191, - 0, 0, 128, 191, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 10, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 8, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 8, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 8, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 9, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 7, 0, - 0, 0, 70, 2, 16, 0, - 8, 0, 0, 0, 51, 0, - 0, 7, 114, 0, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 32, 0, 0, 11, - 242, 0, 16, 0, 8, 0, - 0, 0, 2, 64, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 166, 138, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 52, 0, - 0, 7, 114, 0, 16, 0, - 11, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 24, 0, 0, 10, - 242, 0, 16, 0, 12, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 63, - 24, 0, 0, 10, 242, 0, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 11, 114, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 51, 0, - 0, 10, 114, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 55, 0, 0, 12, - 114, 0, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 55, 0, 0, 12, - 114, 0, 16, 0, 12, 0, - 0, 0, 70, 2, 16, 0, - 12, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 13, 0, - 0, 0, 0, 0, 0, 11, - 114, 0, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 51, 0, 0, 10, - 114, 0, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 11, 114, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 14, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 55, 0, 0, 9, - 130, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 0, - 13, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 14, 0, - 0, 0, 55, 0, 0, 9, - 18, 0, 16, 0, 15, 0, - 0, 0, 58, 0, 16, 0, - 12, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 58, 0, 16, 0, 2, 0, - 0, 0, 24, 0, 0, 10, - 146, 0, 16, 0, 14, 0, - 0, 0, 86, 9, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 63, - 24, 0, 0, 10, 50, 0, - 16, 0, 16, 0, 0, 0, - 150, 5, 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, 55, 0, - 0, 12, 98, 0, 16, 0, - 14, 0, 0, 0, 6, 1, - 16, 0, 16, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 86, 6, 16, 0, - 14, 0, 0, 0, 55, 0, - 0, 12, 98, 0, 16, 0, - 15, 0, 0, 0, 6, 3, - 16, 0, 14, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 86, 6, 16, 0, - 14, 0, 0, 0, 29, 0, - 0, 10, 114, 0, 16, 0, - 14, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, - 0, 63, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 6, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 0, 9, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 6, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 10, 0, 0, 0, 70, 2, - 16, 0, 6, 0, 0, 0, - 32, 0, 0, 11, 242, 0, - 16, 0, 9, 0, 0, 0, - 2, 64, 0, 0, 5, 0, - 0, 0, 6, 0, 0, 0, - 7, 0, 0, 0, 8, 0, - 0, 0, 166, 138, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 50, 0, 0, 16, - 114, 0, 16, 0, 10, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 64, - 0, 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, 10, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 10, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 10, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 10, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 15, - 114, 0, 16, 0, 13, 0, - 0, 0, 70, 2, 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, 0, - 2, 64, 0, 0, 0, 0, - 128, 191, 0, 0, 128, 191, - 0, 0, 128, 191, 0, 0, - 0, 0, 50, 0, 0, 15, - 114, 0, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 65, - 0, 0, 128, 65, 0, 0, - 128, 65, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 64, 193, 0, 0, 64, 193, - 0, 0, 64, 193, 0, 0, - 0, 0, 50, 0, 0, 12, - 114, 0, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 64, 0, 0, 128, 64, - 0, 0, 128, 64, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 75, 0, 0, 5, 114, 0, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 130, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 0, - 5, 0, 0, 0, 10, 0, - 16, 0, 16, 0, 0, 0, - 10, 0, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 50, 0, - 0, 9, 130, 0, 16, 0, - 2, 0, 0, 0, 10, 0, - 16, 0, 13, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 18, 0, 16, 0, - 18, 0, 0, 0, 10, 0, - 16, 0, 14, 0, 0, 0, - 10, 0, 16, 0, 10, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 29, 0, - 0, 10, 146, 0, 16, 0, - 10, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 62, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 62, - 86, 9, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 146, 0, 16, 0, 10, 0, - 0, 0, 6, 12, 16, 0, - 10, 0, 0, 0, 86, 9, - 16, 0, 16, 0, 0, 0, - 86, 9, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 8, - 146, 0, 16, 0, 10, 0, - 0, 0, 86, 9, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 6, 12, 16, 0, - 10, 0, 0, 0, 50, 0, - 0, 9, 146, 0, 16, 0, - 10, 0, 0, 0, 86, 9, - 16, 0, 13, 0, 0, 0, - 6, 12, 16, 0, 10, 0, - 0, 0, 86, 9, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 98, 0, 16, 0, - 18, 0, 0, 0, 86, 6, - 16, 0, 14, 0, 0, 0, - 86, 6, 16, 0, 10, 0, - 0, 0, 6, 3, 16, 0, - 10, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 10, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 50, 0, 0, 13, 114, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 64, - 0, 0, 0, 64, 0, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 2, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 2, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 3, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 3, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 13, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 29, 0, - 0, 7, 130, 0, 16, 0, - 2, 0, 0, 0, 26, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 31, 0, 4, 3, - 58, 0, 16, 0, 2, 0, - 0, 0, 49, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 6, 2, 16, 0, - 1, 0, 0, 0, 102, 9, - 16, 0, 1, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 16, 0, 0, 0, - 6, 10, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 150, 4, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 22, 7, 16, 0, - 16, 0, 0, 0, 1, 0, - 0, 7, 98, 0, 16, 0, - 16, 0, 0, 0, 6, 3, - 16, 0, 13, 0, 0, 0, - 6, 0, 16, 0, 14, 0, - 0, 0, 29, 0, 0, 7, - 146, 0, 16, 0, 14, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 86, 1, - 16, 0, 1, 0, 0, 0, - 1, 0, 0, 7, 98, 0, - 16, 0, 17, 0, 0, 0, - 246, 13, 16, 0, 13, 0, - 0, 0, 86, 5, 16, 0, - 14, 0, 0, 0, 1, 0, - 0, 7, 50, 0, 16, 0, - 19, 0, 0, 0, 230, 10, - 16, 0, 13, 0, 0, 0, - 166, 10, 16, 0, 14, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 17, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 19, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 226, 0, - 16, 0, 14, 0, 0, 0, - 246, 15, 16, 0, 14, 0, - 0, 0, 6, 9, 16, 0, - 17, 0, 0, 0, 6, 9, - 16, 0, 19, 0, 0, 0, - 54, 0, 0, 5, 18, 0, - 16, 0, 16, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 14, 0, - 0, 0, 6, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 150, 7, 16, 0, 14, 0, - 0, 0, 18, 0, 0, 1, - 49, 0, 0, 7, 114, 0, - 16, 0, 16, 0, 0, 0, - 86, 6, 16, 0, 1, 0, - 0, 0, 38, 8, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 17, 0, 0, 0, 86, 10, - 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 134, 1, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 19, 0, 0, 0, - 246, 15, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 22, 7, 16, 0, 17, 0, - 0, 0, 1, 0, 0, 7, - 82, 0, 16, 0, 17, 0, - 0, 0, 6, 3, 16, 0, - 13, 0, 0, 0, 6, 0, - 16, 0, 16, 0, 0, 0, - 29, 0, 0, 7, 146, 0, - 16, 0, 16, 0, 0, 0, - 166, 10, 16, 0, 1, 0, - 0, 0, 6, 4, 16, 0, - 1, 0, 0, 0, 1, 0, - 0, 7, 82, 0, 16, 0, - 19, 0, 0, 0, 246, 13, - 16, 0, 13, 0, 0, 0, - 86, 5, 16, 0, 16, 0, - 0, 0, 1, 0, 0, 7, - 50, 0, 16, 0, 13, 0, - 0, 0, 182, 15, 16, 0, - 13, 0, 0, 0, 166, 10, - 16, 0, 16, 0, 0, 0, - 54, 0, 0, 5, 34, 0, - 16, 0, 19, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 66, 0, 16, 0, 13, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 13, 0, 0, 0, 246, 15, - 16, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 54, 0, - 0, 5, 34, 0, 16, 0, - 17, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 14, 0, 0, 0, - 6, 0, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 21, 0, 0, 1, 16, 0, - 0, 10, 130, 0, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 154, 153, 153, 62, - 61, 10, 23, 63, 174, 71, - 225, 61, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 16, 0, 0, 10, - 130, 0, 16, 0, 3, 0, - 0, 0, 2, 64, 0, 0, - 154, 153, 153, 62, 61, 10, - 23, 63, 174, 71, 225, 61, - 0, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 3, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 13, 0, - 0, 0, 246, 15, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 16, 0, 0, 10, 130, 0, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 0, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 4, 0, 0, 0, 26, 0, - 16, 0, 13, 0, 0, 0, - 10, 0, 16, 0, 13, 0, - 0, 0, 51, 0, 0, 7, - 130, 0, 16, 0, 4, 0, - 0, 0, 42, 0, 16, 0, - 13, 0, 0, 0, 58, 0, - 16, 0, 4, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 5, 0, 0, 0, - 26, 0, 16, 0, 13, 0, - 0, 0, 10, 0, 16, 0, - 13, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 5, 0, 0, 0, 42, 0, - 16, 0, 13, 0, 0, 0, - 58, 0, 16, 0, 5, 0, - 0, 0, 49, 0, 0, 7, - 130, 0, 16, 0, 6, 0, - 0, 0, 58, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 114, 0, - 16, 0, 14, 0, 0, 0, - 246, 15, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 13, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 4, 0, 0, 0, - 58, 0, 16, 0, 3, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 4, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 246, 15, - 16, 0, 4, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 14, 0, 0, 0, - 246, 15, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 13, 0, 0, 0, 246, 15, - 16, 0, 6, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 49, 0, - 0, 7, 130, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 58, 0, 16, 0, 5, 0, - 0, 0, 0, 0, 0, 8, - 114, 0, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 6, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 114, 0, - 16, 0, 14, 0, 0, 0, - 246, 15, 16, 0, 6, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 5, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 58, 0, - 16, 0, 5, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 5, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 14, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 13, 0, - 0, 0, 246, 15, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 0, 13, 0, - 0, 0, 32, 0, 0, 11, - 242, 0, 16, 0, 14, 0, - 0, 0, 2, 64, 0, 0, - 9, 0, 0, 0, 10, 0, - 0, 0, 11, 0, 0, 0, - 12, 0, 0, 0, 166, 138, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 26, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 3, 0, - 0, 0, 42, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 3, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 26, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 4, 0, 0, 0, 42, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 4, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 16, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 4, 0, 0, 0, 29, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 31, 0, 4, 3, - 58, 0, 16, 0, 3, 0, - 0, 0, 49, 0, 0, 7, - 114, 0, 16, 0, 17, 0, - 0, 0, 6, 2, 16, 0, - 0, 0, 0, 0, 102, 9, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 19, 0, 0, 0, - 6, 10, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 150, 4, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 20, 0, - 0, 0, 246, 15, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 20, 0, - 0, 0, 22, 7, 16, 0, - 19, 0, 0, 0, 1, 0, - 0, 7, 98, 0, 16, 0, - 19, 0, 0, 0, 6, 3, - 16, 0, 16, 0, 0, 0, - 6, 0, 16, 0, 17, 0, - 0, 0, 29, 0, 0, 7, - 146, 0, 16, 0, 17, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 86, 1, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 7, 98, 0, - 16, 0, 20, 0, 0, 0, - 246, 13, 16, 0, 16, 0, - 0, 0, 86, 5, 16, 0, - 17, 0, 0, 0, 1, 0, - 0, 7, 50, 0, 16, 0, - 21, 0, 0, 0, 230, 10, - 16, 0, 16, 0, 0, 0, - 166, 10, 16, 0, 17, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 20, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 21, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 226, 0, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 17, 0, - 0, 0, 6, 9, 16, 0, - 20, 0, 0, 0, 6, 9, - 16, 0, 21, 0, 0, 0, - 54, 0, 0, 5, 18, 0, - 16, 0, 19, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 17, 0, - 0, 0, 6, 0, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 150, 7, 16, 0, 17, 0, - 0, 0, 18, 0, 0, 1, - 49, 0, 0, 7, 114, 0, - 16, 0, 19, 0, 0, 0, - 86, 6, 16, 0, 0, 0, - 0, 0, 38, 8, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 20, 0, 0, 0, 86, 10, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 134, 1, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 21, 0, 0, 0, - 246, 15, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 21, 0, 0, 0, - 22, 7, 16, 0, 20, 0, - 0, 0, 1, 0, 0, 7, - 82, 0, 16, 0, 20, 0, - 0, 0, 6, 3, 16, 0, - 16, 0, 0, 0, 6, 0, - 16, 0, 19, 0, 0, 0, - 29, 0, 0, 7, 146, 0, - 16, 0, 19, 0, 0, 0, - 166, 10, 16, 0, 0, 0, - 0, 0, 6, 4, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 7, 82, 0, 16, 0, - 21, 0, 0, 0, 246, 13, - 16, 0, 16, 0, 0, 0, - 86, 5, 16, 0, 19, 0, - 0, 0, 1, 0, 0, 7, - 50, 0, 16, 0, 16, 0, - 0, 0, 182, 15, 16, 0, - 16, 0, 0, 0, 166, 10, - 16, 0, 19, 0, 0, 0, - 54, 0, 0, 5, 34, 0, - 16, 0, 21, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 66, 0, 16, 0, 16, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 16, 0, 0, 0, 246, 15, - 16, 0, 19, 0, 0, 0, - 70, 2, 16, 0, 21, 0, - 0, 0, 70, 2, 16, 0, - 16, 0, 0, 0, 54, 0, - 0, 5, 34, 0, 16, 0, - 20, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 17, 0, 0, 0, - 6, 0, 16, 0, 19, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 21, 0, 0, 1, 16, 0, - 0, 10, 130, 0, 16, 0, - 3, 0, 0, 0, 2, 64, - 0, 0, 154, 153, 153, 62, - 61, 10, 23, 63, 174, 71, - 225, 61, 0, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 3, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 16, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 16, 0, 0, 10, - 130, 0, 16, 0, 3, 0, - 0, 0, 2, 64, 0, 0, - 154, 153, 153, 62, 61, 10, - 23, 63, 174, 71, 225, 61, - 0, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 26, 0, 16, 0, 16, 0, - 0, 0, 10, 0, 16, 0, - 16, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 4, 0, 0, 0, 42, 0, - 16, 0, 16, 0, 0, 0, - 58, 0, 16, 0, 4, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 5, 0, - 0, 0, 26, 0, 16, 0, - 16, 0, 0, 0, 10, 0, - 16, 0, 16, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 5, 0, 0, 0, - 42, 0, 16, 0, 16, 0, - 0, 0, 58, 0, 16, 0, - 5, 0, 0, 0, 49, 0, - 0, 7, 130, 0, 16, 0, - 6, 0, 0, 0, 58, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 114, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 16, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 4, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 4, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 4, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 16, 0, 0, 0, - 246, 15, 16, 0, 6, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 49, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 58, 0, 16, 0, - 5, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 6, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 5, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 58, 0, 16, 0, 5, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 17, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 0, 5, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 16, 0, 0, 0, 246, 15, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 70, 2, 16, 0, - 16, 0, 0, 0, 16, 0, - 0, 10, 130, 0, 16, 0, - 3, 0, 0, 0, 2, 64, - 0, 0, 154, 153, 153, 62, - 61, 10, 23, 63, 174, 71, - 225, 61, 0, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 4, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 4, 0, - 0, 0, 16, 0, 0, 10, - 130, 0, 16, 0, 4, 0, - 0, 0, 2, 64, 0, 0, - 154, 153, 153, 62, 61, 10, - 23, 63, 174, 71, 225, 61, - 0, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 5, 0, 0, 0, - 26, 0, 16, 0, 17, 0, - 0, 0, 10, 0, 16, 0, - 17, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 5, 0, 0, 0, 42, 0, - 16, 0, 17, 0, 0, 0, - 58, 0, 16, 0, 5, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 6, 0, - 0, 0, 26, 0, 16, 0, - 17, 0, 0, 0, 10, 0, - 16, 0, 17, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 6, 0, 0, 0, - 42, 0, 16, 0, 17, 0, - 0, 0, 58, 0, 16, 0, - 6, 0, 0, 0, 49, 0, - 0, 7, 130, 0, 16, 0, - 7, 0, 0, 0, 58, 0, - 16, 0, 5, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 114, 0, 16, 0, 19, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 19, 0, 0, 0, 246, 15, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 5, 0, - 0, 0, 58, 0, 16, 0, - 4, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 5, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 246, 15, 16, 0, 5, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 19, 0, - 0, 0, 246, 15, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 7, 0, - 0, 0, 70, 2, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 49, 0, 0, 7, 130, 0, - 16, 0, 5, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 58, 0, 16, 0, - 6, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 19, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 7, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 0, 16, 0, 19, 0, - 0, 0, 246, 15, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 6, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 4, 0, 0, 0, - 58, 0, 16, 0, 6, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 19, 0, - 0, 0, 70, 2, 16, 0, - 19, 0, 0, 0, 246, 15, - 16, 0, 6, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 19, 0, 0, 0, - 246, 15, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 19, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 32, 0, - 0, 11, 50, 0, 16, 0, - 19, 0, 0, 0, 2, 64, - 0, 0, 13, 0, 0, 0, - 14, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 166, 138, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 2, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 2, 0, 0, 0, - 58, 0, 16, 0, 3, 0, - 0, 0, 0, 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, - 16, 0, 0, 10, 130, 0, - 16, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 51, 0, 0, 7, - 130, 0, 16, 0, 3, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 3, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 4, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 4, 0, - 0, 0, 49, 0, 0, 7, - 130, 0, 16, 0, 5, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 114, 0, - 16, 0, 20, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 2, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 20, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 3, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 20, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 20, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 20, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 49, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 58, 0, 16, 0, 4, 0, - 0, 0, 0, 0, 0, 8, - 114, 0, 16, 0, 20, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 5, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 114, 0, - 16, 0, 20, 0, 0, 0, - 246, 15, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 4, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 2, 0, 0, 0, 58, 0, - 16, 0, 4, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 20, 0, 0, 0, - 70, 2, 16, 0, 20, 0, - 0, 0, 246, 15, 16, 0, - 4, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 20, 0, 0, 0, 246, 15, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 20, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 86, 5, - 16, 0, 19, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 19, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 166, 10, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 86, 5, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 128, - 129, 0, 0, 0, 10, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 18, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 10, - 16, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 6, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 86, 5, - 16, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 15, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 12, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 8, 0, 0, 0, - 70, 2, 16, 0, 11, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 10, - 16, 0, 8, 0, 0, 0, - 70, 2, 16, 0, 7, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 86, 5, - 16, 0, 8, 0, 0, 0, - 70, 2, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 8, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 10, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 138, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 0, 0, 0, 8, - 18, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 32, 16, 0, 0, 0, - 0, 0, 246, 15, 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, - 83, 84, 65, 84, 116, 0, - 0, 0, 108, 1, 0, 0, - 22, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 205, 0, 0, 0, 11, 0, - 0, 0, 13, 0, 0, 0, - 15, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 28, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 164, 3, 0, 0, - 1, 0, 0, 0, 80, 1, - 0, 0, 8, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 121, 3, 0, 0, 28, 1, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 37, 1, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 42, 1, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 1, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 45, 1, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 2, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 49, 1, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 3, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 53, 1, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 59, 1, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 6, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 69, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 83, 97, 109, - 112, 108, 101, 114, 0, 116, - 82, 71, 66, 0, 116, 89, - 0, 116, 67, 98, 0, 116, - 67, 114, 0, 116, 77, 97, - 115, 107, 0, 116, 66, 97, - 99, 107, 100, 114, 111, 112, - 0, 36, 71, 108, 111, 98, - 97, 108, 115, 0, 171, 171, - 69, 1, 0, 0, 11, 0, - 0, 0, 104, 1, 0, 0, - 144, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 112, 2, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 124, 2, - 0, 0, 0, 0, 0, 0, - 140, 2, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 156, 2, - 0, 0, 0, 0, 0, 0, - 172, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 188, 2, - 0, 0, 0, 0, 0, 0, - 204, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 2, 0, 0, 0, 220, 2, - 0, 0, 0, 0, 0, 0, - 236, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 252, 2, - 0, 0, 0, 0, 0, 0, - 12, 3, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 252, 2, - 0, 0, 0, 0, 0, 0, - 24, 3, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 124, 2, - 0, 0, 0, 0, 0, 0, - 44, 3, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 60, 3, - 0, 0, 0, 0, 0, 0, - 76, 3, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 60, 3, - 0, 0, 0, 0, 0, 0, - 87, 3, 0, 0, 16, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 252, 2, - 0, 0, 0, 0, 0, 0, - 102, 3, 0, 0, 80, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 252, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 109, 77, 97, - 115, 107, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 109, 66, 97, 99, 107, 100, - 114, 111, 112, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 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, 171, - 171, 171, 73, 83, 71, 78, - 128, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 116, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 12, 0, 0, - 116, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 7, 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, 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 -}; -ShaderBytes sBlendShader = { BlendShader, sizeof(BlendShader) }; diff --git a/gfx/layers/d3d11/DeviceAttachmentsD3D11.h b/gfx/layers/d3d11/DeviceAttachmentsD3D11.h index 62dd35acd91a..6e2237f2e748 100644 --- a/gfx/layers/d3d11/DeviceAttachmentsD3D11.h +++ b/gfx/layers/d3d11/DeviceAttachmentsD3D11.h @@ -13,11 +13,11 @@ #include #include -struct ShaderBytes; - namespace mozilla { namespace layers { +struct ShaderBytes; + class DeviceAttachmentsD3D11 { NS_INLINE_DECL_THREADSAFE_REFCOUNTING(DeviceAttachmentsD3D11); diff --git a/gfx/layers/d3d11/genshaders.py b/gfx/layers/d3d11/genshaders.py new file mode 100644 index 000000000000..95b58a3667fb --- /dev/null +++ b/gfx/layers/d3d11/genshaders.py @@ -0,0 +1,153 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +import argparse +import codecs +import locale +import os +import re +import subprocess +import sys +import tempfile +import yaml + +def shell_main(): + parser = argparse.ArgumentParser() + parser.add_argument('-o', '--output', type=str, required=True, + help='Output file') + parser.add_argument('manifest', type=str, + help='Manifest source file') + args = parser.parse_args() + + with open(args.output, 'w') as out_file: + process_manifest(out_file, args.manifest) + +def main(output_fp, input_filename): + return process_manifest(output_fp, input_filename) + +HEADER = """// AUTOGENERATED - DO NOT EDIT +namespace mozilla { +namespace layers { + +struct ShaderBytes { const void* mData; size_t mLength; }; +""" +FOOTER = """ +} // namespace layers +} // namespace mozilla""" + +def process_manifest(output_fp, manifest_filename): + with codecs.open(manifest_filename, 'r', 'UTF-8') as in_fp: + manifest = yaml.load(in_fp) + shader_folder, _ = os.path.split(manifest_filename) + + output_fp.write(HEADER) + + deps = set() + for block in manifest: + if 'type' not in block: + raise Exception("Expected 'type' key with shader mode") + if 'file' not in block: + raise Exception("Expected 'file' key with shader file") + if 'shaders' not in block: + raise Exception("Expected 'shaders' key with shader name list") + + shader_file = os.path.join(shader_folder, block['file']) + deps.add(shader_file) + + shader_model = block['type'] + for shader_name in block['shaders']: + new_deps = run_fxc( + shader_model = shader_model, + shader_file = shader_file, + shader_name = shader_name, + output_fp = output_fp) + deps |= new_deps + + output_fp.write(FOOTER) + return deps + +def run_fxc(shader_model, + shader_file, + shader_name, + output_fp): + argv = [ + 'fxc', + '-nologo', + '-T{0}'.format(shader_model), + shader_file, + '-E{0}'.format(shader_name), + '-Vn{0}'.format(shader_name), + '-Vi', + ] + if shader_model.startswith('vs_'): + argv += ['-DVERTEX_SHADER'] + elif shader_model.startswith('ps_'): + argv += ['-DPIXEL_SHADER'] + + deps = None + with ScopedTempFilename() as temp_filename: + argv += ['-Fh{0}'.format(temp_filename)] + + sys.stdout.write('{0}\n'.format(' '.join(argv))) + proc_stdout = subprocess.check_output(argv) + proc_stdout = decode_console_text(sys.stdout, proc_stdout) + deps = find_dependencies(proc_stdout) + assert len(deps) > 0 + + with open(temp_filename, 'r') as temp_fp: + output_fp.write(temp_fp.read()) + + output_fp.write("ShaderBytes s{0} = {{ {0}, sizeof({0}) }};\n".format( + shader_name)) + return deps + +def find_dependencies(fxc_output): + # Dependencies look like this: + # Resolved to [] + # + # Microsoft likes to change output strings based on the user's language, so + # instead of pattern matching on that string, we take everything in between + # brackets. We filter out potentially bogus strings later. + deps = set() + for line in fxc_output.split('\n'): + m = re.search(r"\[([^\]]+)\]", line) + if m is None: + continue + dep_path = m.group(1) + dep_path = os.path.normpath(dep_path) + if os.path.isfile(dep_path): + deps.add(dep_path) + return deps + +# Python reads the raw bytes from stdout, so we need to try our best to +# capture that as a valid Python string. +def decode_console_text(pipe, text): + try: + if pipe.encoding: + return text.decode(pipe.encoding, 'replace') + except: + pass + try: + return text.decode(locale.getpreferredencoding(), 'replace') + except: + return text.decode('utf8', 'replace') + +# Allocate a temporary file name and delete it when done. We need an extra +# wrapper for this since TemporaryNamedFile holds the file open. +class ScopedTempFilename(object): + def __init__(self): + self.name = None + def __enter__(self): + with tempfile.NamedTemporaryFile(delete = False) as tmp: + self.name = tmp.name + return self.name + def __exit__(self, type, value, traceback): + if not self.name: + return + try: + os.unlink(self.name) + except: + pass + +if __name__ == '__main__': + shell_main() diff --git a/gfx/layers/d3d11/genshaders.sh b/gfx/layers/d3d11/genshaders.sh deleted file mode 100644 index ad477eee4b59..000000000000 --- a/gfx/layers/d3d11/genshaders.sh +++ /dev/null @@ -1,56 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -tempfile=tmpShaderHeader - -FXC_DEBUG_FLAGS="-Zi -Fd shaders.pdb" -FXC_FLAGS="" - -# If DEBUG is in the environment, then rebuild with debug info -if [ "$DEBUG" != "" ] ; then - FXC_FLAGS="$FXC_DEBUG_FLAGS" -fi - -makeShaderVS() { - fxc -nologo $FXC_FLAGS -Tvs_4_0_level_9_3 $SRC -E$1 -Vn$1 -Fh$tempfile - echo "ShaderBytes s$1 = { $1, sizeof($1) };" >> $tempfile; - cat $tempfile >> $DEST -} - -makeShaderPS() { - fxc -nologo $FXC_FLAGS -Tps_4_0_level_9_3 $SRC -E$1 -Vn$1 -Fh$tempfile - echo "ShaderBytes s$1 = { $1, sizeof($1) };" >> $tempfile; - cat $tempfile >> $DEST -} - -SRC=CompositorD3D11.hlsl -DEST=CompositorD3D11Shaders.h - -rm -f $DEST -echo "struct ShaderBytes { const void* mData; size_t mLength; };" >> $DEST; -makeShaderVS LayerQuadVS -makeShaderVS LayerDynamicVS -makeShaderPS SolidColorShader -makeShaderPS RGBShader -makeShaderPS RGBAShader -makeShaderPS ComponentAlphaShader -makeShaderPS YCbCrShader -makeShaderPS NV12Shader -makeShaderVS LayerQuadMaskVS -makeShaderVS LayerDynamicMaskVS -makeShaderPS SolidColorShaderMask -makeShaderPS RGBShaderMask -makeShaderPS RGBAShaderMask -makeShaderPS YCbCrShaderMask -makeShaderPS NV12ShaderMask -makeShaderPS ComponentAlphaShaderMask - -# Mix-blend shaders -makeShaderVS LayerQuadBlendVS -makeShaderVS LayerQuadBlendMaskVS -makeShaderVS LayerDynamicBlendVS -makeShaderVS LayerDynamicBlendMaskVS -makeShaderPS BlendShader - -rm $tempfile diff --git a/gfx/layers/d3d11/shaders.manifest b/gfx/layers/d3d11/shaders.manifest new file mode 100644 index 000000000000..f1f43dd23a2b --- /dev/null +++ b/gfx/layers/d3d11/shaders.manifest @@ -0,0 +1,28 @@ +- type: vs_4_0_level_9_3 + file: CompositorD3D11.hlsl + shaders: + - LayerQuadVS + - LayerDynamicVS + - LayerQuadMaskVS + - LayerDynamicMaskVS + - LayerQuadBlendVS + - LayerQuadBlendMaskVS + - LayerDynamicBlendVS + - LayerDynamicBlendMaskVS + +- type: ps_4_0_level_9_3 + file: CompositorD3D11.hlsl + shaders: + - SolidColorShader + - RGBShader + - RGBAShader + - ComponentAlphaShader + - YCbCrShader + - NV12Shader + - SolidColorShaderMask + - RGBShaderMask + - RGBAShaderMask + - YCbCrShaderMask + - NV12ShaderMask + - ComponentAlphaShaderMask + - BlendShader diff --git a/gfx/layers/moz.build b/gfx/layers/moz.build index 092060e47ab2..7889747e2928 100644 --- a/gfx/layers/moz.build +++ b/gfx/layers/moz.build @@ -464,6 +464,15 @@ IPDL_SOURCES += [ include('/ipc/chromium/chromium-config.mozbuild') +if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': + GENERATED_FILES = [ + 'CompositorD3D11Shaders.h', + ] + + d3d11_shaders = GENERATED_FILES['CompositorD3D11Shaders.h'] + d3d11_shaders.script = 'd3d11/genshaders.py' + d3d11_shaders.inputs = ['d3d11/shaders.manifest'] + LOCAL_INCLUDES += [ '/docshell/base', # for nsDocShell.h '/layout/base', # for TouchManager.h diff --git a/gfx/vr/gfxVROculus.cpp b/gfx/vr/gfxVROculus.cpp index 960b76d5ce79..fa25ede0a10c 100644 --- a/gfx/vr/gfxVROculus.cpp +++ b/gfx/vr/gfxVROculus.cpp @@ -42,9 +42,13 @@ */ // See CompositorD3D11Shaders.h +namespace mozilla { +namespace layers { struct ShaderBytes { const void* mData; size_t mLength; }; extern ShaderBytes sRGBShader; extern ShaderBytes sLayerQuadVS; +} // namespace layers +} // namespace mozilla #ifndef M_PI # define M_PI 3.14159265358979323846 #endif @@ -1504,4 +1508,4 @@ VRSystemManagerOculus::RemoveControllers() mOculusController.Clear(); mControllerCount = 0; -} \ No newline at end of file +} diff --git a/ipc/glue/MessageChannel.cpp b/ipc/glue/MessageChannel.cpp index 8effce5c6e49..ffa17287788f 100644 --- a/ipc/glue/MessageChannel.cpp +++ b/ipc/glue/MessageChannel.cpp @@ -774,6 +774,7 @@ MessageChannel::Open(Transport* aTransport, MessageLoop* aIOLoop, Side aSide) mWorkerLoop = MessageLoop::current(); mWorkerLoopID = mWorkerLoop->id(); mWorkerLoop->AddDestructionObserver(this); + mListener->SetIsMainThreadProtocol(); if (!AbstractThread::GetCurrent()) { mWorkerLoop->AddDestructionObserver( @@ -859,6 +860,7 @@ MessageChannel::CommonThreadOpenInit(MessageChannel *aTargetChan, Side aSide) mWorkerLoop = MessageLoop::current(); mWorkerLoopID = mWorkerLoop->id(); mWorkerLoop->AddDestructionObserver(this); + mListener->SetIsMainThreadProtocol(); if (!AbstractThread::GetCurrent()) { mWorkerLoop->AddDestructionObserver( diff --git a/ipc/glue/ProtocolUtils.cpp b/ipc/glue/ProtocolUtils.cpp index 1d6559bf9201..093e9b120181 100644 --- a/ipc/glue/ProtocolUtils.cpp +++ b/ipc/glue/ProtocolUtils.cpp @@ -19,6 +19,7 @@ #include "mozilla/ipc/MessageChannel.h" #include "mozilla/ipc/Transport.h" #include "mozilla/StaticMutex.h" +#include "mozilla/SystemGroup.h" #include "mozilla/Unused.h" #include "nsPrintfCString.h" @@ -815,6 +816,13 @@ IToplevelProtocol::ShmemDestroyed(const Message& aMsg) already_AddRefed IToplevelProtocol::GetMessageEventTarget(const Message& aMsg) { + if (IsMainThreadProtocol() && SystemGroup::Initialized()) { + if (aMsg.type() == SHMEM_CREATED_MESSAGE_TYPE || + aMsg.type() == SHMEM_DESTROYED_MESSAGE_TYPE) { + return do_AddRef(SystemGroup::EventTargetFor(TaskCategory::Other)); + } + } + int32_t route = aMsg.routing_id(); Maybe lock; diff --git a/ipc/glue/ProtocolUtils.h b/ipc/glue/ProtocolUtils.h index 8f02d85c8179..64c483113f8f 100644 --- a/ipc/glue/ProtocolUtils.h +++ b/ipc/glue/ProtocolUtils.h @@ -386,6 +386,10 @@ public: GetActorEventTarget(); virtual void OnChannelReceivedMessage(const Message& aMsg) {} + + bool IsMainThreadProtocol() const { return mIsMainThreadProtocol; } + void SetIsMainThreadProtocol() { mIsMainThreadProtocol = NS_IsMainThread(); } + protected: // Override this method in top-level protocols to change the event target // for a new actor (and its sub-actors). @@ -413,6 +417,7 @@ protected: int32_t mLastRouteId; IDMap mShmemMap; Shmem::id_t mLastShmemId; + bool mIsMainThreadProtocol; Mutex mEventTargetMutex; IDMap> mEventTargetMap; diff --git a/ipc/ipdl/sync-messages.ini b/ipc/ipdl/sync-messages.ini index 7d67b03ba97c..530ea679c300 100644 --- a/ipc/ipdl/sync-messages.ini +++ b/ipc/ipdl/sync-messages.ini @@ -1080,8 +1080,6 @@ description = description = [PCookieService::GetCookieString] description = -[PPrinting::ShowProgress] -description = [PPrinting::SavePrintSettings] description = [PHandlerService::FillHandlerInfo] diff --git a/js/src/devtools/automation/autospider.py b/js/src/devtools/automation/autospider.py index 842963375205..fabe50fa2103 100755 --- a/js/src/devtools/automation/autospider.py +++ b/js/src/devtools/automation/autospider.py @@ -432,13 +432,8 @@ if args.variant in ('tsan', 'msan'): print >> outfh, "%d %s" % (count, location) print(open(summary_filename, 'rb').read()) - max_allowed = None if 'max-errors' in variant: max_allowed = variant['max-errors'] - elif 'expect-errors' in variant: - max_allowed = len(variant['expect-errors']) - - if max_allowed is not None: print("Found %d errors out of %d allowed" % (len(sites), max_allowed)) if len(sites) > max_allowed: results.append(1) @@ -467,12 +462,18 @@ if args.variant in ('tsan', 'msan'): # expect-errors is an array of (filename, function) tuples. expect = tuple(expect) if remaining[expect] == 0: - print("Did not see expected error in %s function %s" % expect) + print("Did not see known error in %s function %s" % expect) else: remaining[expect] -= 1 + status = 0 for filename, function in (e for e, c in remaining.items() if c > 0): - print("*** tsan error in %s function %s" % (filename, function)) + if AUTOMATION: + print("TinderboxPrint: tsan error
%s function %s" % (filename, function)) + status = 1 + else: + print("*** tsan error in %s function %s" % (filename, function)) + results.append(status) # Gather individual results into a tarball. Note that these are # distinguished only by pid of the JS process running within each test, so diff --git a/js/src/devtools/automation/tsan-sighandlers.txt b/js/src/devtools/automation/tsan-sighandlers.txt index 0958625e6eae..b25a3d1710fc 100644 --- a/js/src/devtools/automation/tsan-sighandlers.txt +++ b/js/src/devtools/automation/tsan-sighandlers.txt @@ -1,10 +1,14 @@ +# Skip tests that rely on wasm signal handlers. asm.js/testTimeout1.js asm.js/testTimeout2.js asm.js/testTimeout3.js asm.js/testTimeout4.js asm.js/testTimeout5.js asm.js/testTimeout6.js -basic/spread-call-maxarg.js -basic/spread-call-near-maxarg.js ion/iloop.js wasm/timeout + +# Skip tests that run too slowly under tsan. +basic/spread-call-maxarg.js +basic/spread-call-near-maxarg.js +arrays/too-long-array-splice.js diff --git a/js/src/devtools/automation/variants/tsan b/js/src/devtools/automation/variants/tsan index 94424f30df0f..235f9d10912d 100644 --- a/js/src/devtools/automation/variants/tsan +++ b/js/src/devtools/automation/variants/tsan @@ -9,27 +9,36 @@ "JSTESTS_EXTRA_ARGS": "--exclude-file={DIR}/cgc-jstests-slow.txt", "TSAN_OPTIONS": "exitcode=0 log_path={OUTDIR}/sanitize_log" }, - "[comment on expect-errors]": "Note that expect-errors may contain duplicates. These indicate that tsan reports errors as two distinct line numbers. We cannot just insert line numbers, because they will shift around between versions.", + "[comment on expect-errors]": "Note that expect-errors may contain duplicates. These indicate that tsan reports errors as two distinct line numbers in the same function. (Line number shift around, so we cannot just include them here.)", "expect-errors": [ [ "Shape.h", "inDictionary" ], - [ "jsfriendapi.h", "GetObjectClass" ], [ "Shape.h", "maybeSlot" ], - [ "Barrier.h", "set" ], - [ "jitprofiling.c", "iJIT_GetNewMethodID" ], - [ "Statistics.h", "count" ], + [ "Shape.h", "slotSpan" ], + [ "Shape.h", "setSlotWithType" ], + [ "Shape.h", "search" ], [ "Shape.h", "setOverwritten" ], - [ "TestingFunctions.cpp", "js::DefineTestingFunctions(JSContext*, JS::Handle, bool, bool)" ], - [ "TestingFunctions.cpp", "js::DefineTestingFunctions(JSContext*, JS::Handle, bool, bool)" ], - [ "OSObject.cpp", "js::shell::DefineOS(JSContext*, JS::Handle, bool, js::shell::RCFile**, js::shell::RCFile**)" ], - [ "OSObject.cpp", "js::shell::DefineOS(JSContext*, JS::Handle, bool, js::shell::RCFile**, js::shell::RCFile**)" ], - [ "ObjectGroup.h", "addendumKind" ], - [ "jsfriendapi.h", "numFixedSlots" ], - [ "Marking.cpp", "js::GCMarker::reset()" ], - [ "jsfun.h", "setResolvedLength" ], [ "Shape.h", "incrementNumLinearSearches" ], + [ "Shape.h", "isBigEnoughForAShapeTable" ], + [ "Shape.h", "js::jit::CodeGenerator::emitGetPropertyPolymorphic(js::jit::LInstruction*, js::jit::Register, js::jit::Register, js::jit::TypedOrValueRegister const&)" ], + [ "ProtectedData.h", "operator=" ], + [ "ProtectedData.h", "js::ZoneGroup::leave()" ], + [ "jsfriendapi.h", "GetObjectClass" ], + [ "jsfriendapi.h", "numFixedSlots" ], + [ "jsfriendapi.h", "numDynamicSlots" ], + [ "jsfriendapi.h", "EmulatesUndefined" ], + [ "jitprofiling.c", "iJIT_GetNewMethodID" ], + [ "Marking.cpp", "js::GCMarker::reset()" ], [ "Statistics.h", "js::gc::GCRuntime::pickChunk(js::AutoLockGC const&, js::gc::AutoMaybeStartBackgroundAllocation&)" ], - [ "jsfun.h", "needsSomeEnvironmentObject" ], + [ "Statistics.h", "js::gc::GCRuntime::getOrAllocChunk(js::AutoLockGC const&, js::gc::AutoMaybeStartBackgroundAllocation&)" ], + [ "Barrier.h", "set" ], + [ "Stack.h", "context" ], + [ "Stack.h", "js::HelperThread::handleIonWorkload(js::AutoLockHelperThreadState&)" ], + [ "ObjectGroup.h", "addendumKind" ], + [ "ObjectGroup.h", "generation" ], + [ "ObjectGroup.h", "js::jit::MObjectState::New(js::jit::TempAllocator&, js::jit::MDefinition*)" ], [ "TypeInference-inl.h", "setBasePropertyCount" ], - [ "Statistics.h", "js::gc::GCRuntime::getOrAllocChunk(js::AutoLockGC const&, js::gc::AutoMaybeStartBackgroundAllocation&)" ] + [ "jsscript.h", "decref" ], + [ "jsfun.h", "setResolvedLength" ], + [ "jsfun.h", "needsSomeEnvironmentObject" ] ] } diff --git a/js/src/frontend/BytecodeEmitter.cpp b/js/src/frontend/BytecodeEmitter.cpp index cb02230c901c..ba2d2e175f98 100644 --- a/js/src/frontend/BytecodeEmitter.cpp +++ b/js/src/frontend/BytecodeEmitter.cpp @@ -5422,7 +5422,14 @@ BytecodeEmitter::emitIteratorClose(IteratorKind iterKind /* = IteratorKind::Sync checkTypeSet(JSOP_CALL); if (iterKind == IteratorKind::Async) { - if (!emitAwait()) // ... ... RESULT + if (completionKind != CompletionKind::Throw) { + // Await clobbers rval, so save the current rval. + if (!emit1(JSOP_GETRVAL)) // ... ... RESULT RVAL + return false; + if (!emit1(JSOP_SWAP)) // ... ... RVAL RESULT + return false; + } + if (!emitAwait()) // ... ... RVAL? RESULT return false; } @@ -5450,8 +5457,15 @@ BytecodeEmitter::emitIteratorClose(IteratorKind iterKind /* = IteratorKind::Sync if (!emitPopN(2)) // ... RESULT return false; } else { - if (!emitCheckIsObj(CheckIsObjectKind::IteratorReturn)) // ... RESULT + if (!emitCheckIsObj(CheckIsObjectKind::IteratorReturn)) // ... RVAL? RESULT return false; + + if (iterKind == IteratorKind::Async) { + if (!emit1(JSOP_SWAP)) // ... RESULT RVAL + return false; + if (!emit1(JSOP_SETRVAL)) // ... RESULT + return false; + } } if (!ifReturnMethodIsDefined.emitElse()) diff --git a/js/src/jit-test/jit_test.py b/js/src/jit-test/jit_test.py index a8e2665a6743..14a4450eb52a 100755 --- a/js/src/jit-test/jit_test.py +++ b/js/src/jit-test/jit_test.py @@ -241,7 +241,10 @@ def main(argv): if options.exclude_from: with open(options.exclude_from) as fh: - options.exclude += [_.strip() for _ in fh] + for line in fh: + line = line.strip() + if not line.startswith("#") and len(line): + options.exclude.append(line) if options.exclude: exclude_list = [] diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list index 9101c3db29da..de5ed0292a3e 100644 --- a/js/src/tests/jstests.list +++ b/js/src/tests/jstests.list @@ -507,17 +507,11 @@ skip script test262/language/statements/for-await-of/async-func-dstr-let-ary-ptr skip script test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-id-iter-step-err.js skip script test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-step-err.js skip script test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-id-iter-step-err.js -skip script test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-iter-close.js skip script test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-step-err.js -skip script test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-id-iter-close.js skip script test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-id-iter-step-err.js -skip script test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-iter-close.js skip script test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-step-err.js skip script test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-id-iter-step-err.js -skip script test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-id-iter-close.js -skip script test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-iter-close.js skip script test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-step-err.js -skip script test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-id-iter-close.js skip script test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-id-iter-step-err.js # Missing expression statement restriction for "async function" diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp index 52f9a596f10c..6b9c733633a7 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp @@ -8006,6 +8006,13 @@ PresShell::HandleEventInternal(WidgetEvent* aEvent, bool touchIsNew = false; bool isHandlingUserInput = false; + if (mCurrentEventContent && aEvent->IsTargetedAtFocusedWindow()) { + nsFocusManager* fm = nsFocusManager::GetFocusManager(); + if (fm) { + fm->FlushBeforeEventHandlingIfNeeded(mCurrentEventContent); + } + } + // XXX How about IME events and input events for plugins? if (aEvent->IsTrusted()) { switch (aEvent->mMessage) { diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js index 504b0f163b44..9b88b86b4f70 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -879,10 +879,6 @@ pref("dom.push.maxRecentMessageIDsPerSubscription", 0); pref("dom.push.enabled", true); #endif -// Maximum number of setTimeout()/setInterval() callbacks to run in a single -// event loop runnable. Minimum value of 1. -pref("dom.timeout.max_consecutive_callbacks", 3); - // The remote content URL where FxAccountsWebChannel messages originate. Must use HTTPS. pref("identity.fxaccounts.remote.webchannel.uri", "https://accounts.firefox.com"); diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index bc24a2eaf899..ef9951e6d503 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -4824,6 +4824,7 @@ pref("xpinstall.signatures.required", false); pref("extensions.alwaysUnpack", false); pref("extensions.minCompatiblePlatformVersion", "2.0"); pref("extensions.webExtensionsMinPlatformVersion", "42.0a1"); +pref("extensions.legacy.enabled", true); pref("extensions.allow-non-mpc-extensions", true); // Other webextensions prefs @@ -5716,9 +5717,9 @@ pref("dom.IntersectionObserver.enabled", true); // Whether module scripts (