DirectUI.dll does look like it leverages D2D, I'm finding calls to D2D1CreateFactory. I'm hoping we've moved beyond milcore Need to investigate further!
it looks like ms have done a big-merge from Silverlight 5 branch, between 7955(110228) and 7989(110421), note Silverlight 5 beta is released on 2011/04/11 (MIX11). There is a string inside 7955 DirectUI.dll says "APP_EARLIER_THAN_SL4.0", which is also seen inside agcore.dll in Silverlight 4, and in 7989 there is one more string says "APP_EARLIER_THAN_SL5.0" inside DirectUI.dll, which can be found inside agcore.dll in Silverlight 5 Beta, and actually HwndHost and HwndBrush are also there.
I wonder if this HwndHost is how we deliver the "WebBrowser" functionality in Silverlight 5 in browser?! And the HwndBrush could be the WebBrowserBrush.. hmmm
CreateDrawingSurfaceFactory is used by the PDF reader. Obviously it cannot draw a pdf document by using DirectUI directly so it uses D2D do draw on a surface/element created by DirectUI.
OsMinVersion = 6.1 this could mean that these Jupiter App will work on Windows 7. Since apparently they can run in immersive mode and desktop mode an update to Win7 ( sp2 ?) could add support for jupiter and more importantly to the new AppStore.
oh really ? where are they ? as far as I can see, there are some WinRT 'Activatable Classes' called "Windows.glcnd" and "Microsoft.Windows.MoCam" but I can't find 'glcnd.class' or 'webcam.class'. and if these are WinRT classes, who registered them and when ? if its automatically registered, why you need to specify it in the manifest ? and also, why you still need to specify the 'executable' file name ? really confused. update: well, inside HKEY_CURRENT_USER\Software\Classes\ActivatableClasses\Package\windows.glcnd.package_1.0.0.0_neutral_en-us_cw5n1h2txyewy\ActivatableClassId\Windows.glcnd\CustomAttributes there is a value AppObject.EntryPoint=glcnd.class but I think this 'attribute' is actually copied from the manifest. the chicken and the egg ....
Good questions. I think I confused the Id of the Application (which is Windows.glcnd, same as the WinRT class name) with the entry point which is "glcnd.class". Weird, glcnd.class is no where to be found. Not even the .class suffix. There's a C++ class named AppFactory which can probably create the application object but since that entry point name is not in the executable... hmm...
Mr. SilverlightWPF, it look like you are a graphics expert, do you know what are these xml files inside d2d1.dll.mui as resources ? example: GAMMATRANSFER.XML Code: <?xml version="1.0" encoding="utf-16"?> <Effect> <!-- Localization --> <_locDefinition> <_locDefault _loc="locNone"/> <_locTag _locAttrData="displayname">Field</_locTag> <_locTag _locAttrData="name">Input</_locTag> <_locTag _locAttrData="value">Property</_locTag> </_locDefinition> <!-- System Properties --> <Property name="DisplayName" type="string" value="Gamma Transfer"/> <Property name="Author" type="string" value="Microsoft Corporation"/> <Property name="Category" type="string" value="Color"/> <Property name="Description" type="string" value="Remaps the color intensities of the input bitmap based on a user specified gamma transfer function for each RGBA channel."/> <Inputs> <Input name="Source"/> </Inputs> <!-- Custom Properties --> <Property name="RedAmplitude" type="float"> <Property name="DisplayName" type="string" value="Red Amplitude"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="RedExponent" type="float"> <Property name="DisplayName" type="string" value="Red Exponent"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="RedOffset" type="float"> <Property name="DisplayName" type="string" value="Red Offset"/> <Property name="Default" type="float" value="0.0"/> </Property> <Property name="RedDisable" type="bool"> <Property name="DisplayName" type="string" value="Red Disable"/> <Property name="Default" type="bool" value="false"/> </Property> <Property name="GreenAmplitude" type="float"> <Property name="DisplayName" type="string" value="Green Amplitude"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="GreenExponent" type="float"> <Property name="DisplayName" type="string" value="Green Exponent"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="GreenOffset" type="float"> <Property name="DisplayName" type="string" value="Green Offset"/> <Property name="Default" type="float" value="0.0"/> </Property> <Property name="GreenDisable" type="bool"> <Property name="DisplayName" type="string" value="Green Disable"/> <Property name="Default" type="bool" value="false"/> </Property> <Property name="BlueAmplitude" type="float"> <Property name="DisplayName" type="string" value="Blue Amplitude"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="BlueExponent" type="float"> <Property name="DisplayName" type="string" value="Blue Exponent"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="BlueOffset" type="float"> <Property name="DisplayName" type="string" value="Blue Offset"/> <Property name="Default" type="float" value="0.0"/> </Property> <Property name="BlueDisable" type="bool"> <Property name="DisplayName" type="string" value="Blue Disable"/> <Property name="Default" type="bool" value="false"/> </Property> <Property name="AlphaAmplitude" type="float"> <Property name="DisplayName" type="string" value="Alpha Amplitude"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="AlphaExponent" type="float"> <Property name="DisplayName" type="string" value="Alpha Exponent"/> <Property name="Default" type="float" value="1.0"/> </Property> <Property name="AlphaOffset" type="float"> <Property name="DisplayName" type="string" value="Alpha Offset"/> <Property name="Default" type="float" value="0.0"/> </Property> <Property name="AlphaDisable" type="bool"> <Property name="DisplayName" type="string" value="Alpha Disable"/> <Property name="Default" type="bool" value="false"/> </Property> </Effect> IMAGESOURCE.XML Code: <?xml version="1.0" encoding="utf-16"?> <Effect> <!-- Localization --> <_locDefinition> <_locDefault _loc="locNone"/> <_locTag _locAttrData="displayname">Field</_locTag> <_locTag _locAttrData="name">Input</_locTag> <_locTag _locAttrData="value">Property</_locTag> </_locDefinition> <!-- System Properties --> <Property name="DisplayName" type="string" value="Image Source"/> <Property name="Author" type="string" value="Microsoft Corporation"/> <Property name="Category" type="string" value="Source"/> <Property name="Description" type="string" value="Loads an image from a source."/> <Inputs/> <!-- Custom Properties --> <Property name="Filename" type="string"> <Property name="DisplayName" type="string" value="Filename"/> <Property name="Default" type="string" value=""/> </Property> <Property name="FrameCount" type="uint32"> <Property name="DisplayName" type="string" value="Frame Count"/> </Property> <Property name="CurrentFrame" type="uint32"> <Property name="DisplayName" type="string" value="Current Frame"/> <Property name="Default" type="uint32" value="0"/> </Property> <Property name="Scale" type="vector2"> <Property name="DisplayName" type="string" value="Scale"/> <Property name="Min" type="vector2" value="(0.0, 0.0)"/> <Property name="Max" type="vector2" value="(20.0, 20.0)"/> <Property name="Default" type="vector2" value="(1.0, 1.0)"/> </Property> <Property name="InterpolationMode" type="enum"> <Property name="DisplayName" type="string" value="Interpolation Mode"/> <Property name="Default" type="enum" value="0x0"/> <Fields> <Field displayname="Nearest Neighbor" index="0"/> <Field displayname="Linear" index="1"/> <Field displayname="Cubic" index="2"/> <Field displayname="Fant" index="6"/> <Field displayname="Mipmap Linear" index="7"/> </Fields> </Property> <Property name="EnableDPICorrection" type="bool"> <Property name="DisplayName" type="string" value="Enable DPI Correction"/> <Property name="Default" type="bool" value="false"/> </Property> <Property name="OutputAlphaMode" type="enum"> <Property name="DisplayName" type="string" value="Output Alpha Mode"/> <Property name="Default" type="enum" value="1"/> <Fields> <Field displayname="Premultiplied" index="1"/> <Field displayname="Straight" index="2"/> </Fields> </Property> </Effect>
Comment from a d2d shader: Code: // Shader fragments shared between D2D and DImage code DImage? Is that some sort of spelling mistake or does it mean "DirectImage"?