Win8 M3 (7989) findings relevant to Managed .net & WPF/SL developers

Discussion in 'Windows 8' started by SilverlightWPF, Jun 19, 2011.

  1. NaiveUser

    NaiveUser MDL Senior Member

    Apr 14, 2011
    419
    523
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    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!
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. NaiveUser

    NaiveUser MDL Senior Member

    Apr 14, 2011
    419
    523
    10
    and also DWriteCreateFactory/D3D10CreateDevice1/DXVA2CreateDirect3DDeviceManager9 etc.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. NaiveUser

    NaiveUser MDL Senior Member

    Apr 14, 2011
    419
    523
    10
    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    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
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  9. bored_neo

    bored_neo MDL Junior Member

    Jun 3, 2011
    53
    26
    0
    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.
     
  10. NaiveUser

    NaiveUser MDL Senior Member

    Apr 14, 2011
    419
    523
    10
    #70 NaiveUser, Jun 28, 2011
    Last edited by a moderator: Apr 20, 2017
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  11. DirectGUI

    DirectGUI MDL Novice

    Jun 25, 2011
    3
    0
    0
    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.
     
  12. bored_neo

    bored_neo MDL Junior Member

    Jun 3, 2011
    53
    26
    0
    Simple, that's a WinRT class, it gets 'activated' as an out of process object.
     
  13. NaiveUser

    NaiveUser MDL Senior Member

    Apr 14, 2011
    419
    523
    10
    #73 NaiveUser, Jun 28, 2011
    Last edited: Jun 28, 2011
    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'. o_O

    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. :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 ....
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  14. bored_neo

    bored_neo MDL Junior Member

    Jun 3, 2011
    53
    26
    0
    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...
     
  15. NaiveUser

    NaiveUser MDL Senior Member

    Apr 14, 2011
    419
    523
    10
    #75 NaiveUser, Jun 29, 2011
    Last edited by a moderator: Apr 20, 2017
    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>
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  16. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    #76 SilverlightWPF, Jun 29, 2011
    Last edited by a moderator: Apr 20, 2017
    (OP)
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    #77 SilverlightWPF, Jun 29, 2011
    Last edited by a moderator: Apr 20, 2017
    (OP)
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  18. SilverlightWPF

    SilverlightWPF MDL Junior Member

    Jun 11, 2011
    69
    8
    0
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  19. bored_neo

    bored_neo MDL Junior Member

    Jun 3, 2011
    53
    26
    0
    #80 bored_neo, Jun 29, 2011
    Last edited by a moderator: Apr 20, 2017
    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"? :)