2 Replies Latest reply on Mar 27, 2012 1:24 PM by sinious

    Stage3D and DirectX

    fawrh

      Ok, Im not sure where else to post this, and this forum was recomended so here goes:

       

      I have a custom rolled COM component that encapsulates and controls the Shockwave Player, in order to run, and be able to communicate with Flash .SWFs as a UI to my DirectX based game. The component works fine, however my problem is that my flash artist wants to be able to use Stage3D now. After attempting to load a Stage3D .SWF I noticed that the .SWF does not render. I have discovered that this is due to the new hardware acceleration that Stage3D uses, (which due to the HRESULT on my CreateDevice() Call I assume to be DirectX) .

       

      In an attempt to work around this issue I have a few questions, both on Stage3D and the Shockwave Player.

       

      The first question is this: Is there any way in flash or through the shockwave control to disable the hardware acceleration in Stage3D? (this would be the least prefered solution as flash finally being based in the video card hardware make everyone happy.)

       

      The second question is: Does anyone know if there is an IUnknown GUID, or other way that I can query to get the device/rendering context that the Shockwave Player / Stage3D is using?

       

       

      I apoligize in advance if this is the wrong forum for such a topic, and would be glad to repost or have this topic moved if needed.

       

      Thank you to anyone who can help.

        • 1. Re: Stage3D and DirectX
          YeahjustgimmeAscreenName Level 1

          Dude, and I thought I was having problems

           

          But seriously, and in my very humble opinion.

           

          I dont know what platform it is supposed to run on.

          If you are using Air. I believe that there is a tweak for flashplayer 11 you need to be able to use stage3d call on a pc.

          For your artist, if he/she is using flex builder I believe that it is required to tweak the build xml to state use flash player 13 to use the stage3d functions in player 11. (seriously).

          Thats about all I have found that somewhat grazes your problem.

           

          Its a lot of I believes, you'll have to take that on faith (although it is intended to give you something to google.)

          Just starting to investigate stage3d myself.

           

          I hope some techno-evangelist will offer some real aid.

           

          Good luck,

           

          Mac

          • 2. Re: Stage3D and DirectX
            sinious Most Valuable Participant

            Stage3D, StageVideo and StageWebView all use different hardware based rendering that is completely outside the SWFs standard display list. StageVideo for example can only play under the display list. StageWebView can only play over the display list.

             

            The wmode parameter should be adjusted to 'direct' to see Stage3D. I'm not sure how you're exporting or wrapping your SWF but have your designer try setting the hardware acceleration wmode to direct. Either in SWF publish properties or you can even set it on your main class via the SWF declaration, e.g.:

             

            [SWF(frameRate=60,width=800,height=600,wmode="direct")]

             

            That should enable you to 'see' Stage3D content. You probably have it set to GPU right now. That may interfere. Without that setting many 3d frameworks won't work at all which may be why you see nothing.

             

            Check the Context3D class to see under the hood, that may help as well.

             

            Also make sure (as mentioned above) you make sure you're exporting for Flash Player 11 and up, 11.1 being preferable for any desktop game. You should make sure your designer has updated the player configs to support exporting for -swf-version 14.