Skip to main content
GameDev.net gamedev.net
🔒 Locked

SlimDX form problem

Started by Jerry.Mouse Nov 22, 2011 at 5:01 PM 0 replies 850+ views
Original Post
Jerry.Mouse
Jerry.Mouse
Hello,
I have small problem with SlimDX form problem.
I would like to use SlimDX window renderer - SlimDX::Windows::RenderForm.

Once, object is created and form->Activate(); function is used, but result is .... nothing... windows is not visible.
Message loop is working ok.

Can anyone help me how can I view the correct SlinDX rendering window ?

Many thanks

Jerry



[color="#0000ff"][color="#0000ff"]public [color="#0000ff"][color="#0000ff"]ref [color="#0000ff"][color="#0000ff"]class MySlimDX

{

[color="#0000ff"][color="#0000ff"]public:
[color="#0000ff"][color="#0000ff"] static SlimDX::Direct3D9::Device^ D3DDevice; [color="#008000"][color="#008000"]// Direct3D device.

[color="#0000ff"][color="#0000ff"]public:

MySlimDX()

{

SlimDX::Windows::MainLoop^ del = [color="#0000ff"][color="#0000ff"]gcnew SlimDX::Windows::MainLoop( MySlimDX::MyMainLoop );
SlimDX::Windows::RenderForm^ form = [color="#0000ff"][color="#0000ff"]gcnew SlimDX::Windows::RenderForm([color="#a31515"][color="#a31515"]"My first SlimDX");
form->Activate();

[color="#008000"][color="#008000"] // Create a new PresentParameters object and fill in the necessary fields.
SlimDX::Direct3D9::PresentParameters^ presentParams = [color="#0000ff"][color="#0000ff"]gcnew SlimDX::Direct3D9::PresentParameters();

[color="#008000"][color="#008000"] // Below are the required bare mininum, needed to initialize the D3D device.
presentParams->Windowed = [color="#0000ff"][color="#0000ff"]true;
presentParams->BackBufferHeight = 500;
presentParams->BackBufferWidth = 500;
presentParams->SwapEffect = SlimDX::Direct3D9::SwapEffect::Discard;
presentParams->DeviceWindowHandle = form->Handle;



[color="#008000"][color="#008000"] // Create the Direct3D device.
SlimDX::Direct3D9::Direct3D^ MS_direct3D = [color="#0000ff"][color="#0000ff"]gcnew Direct3D();

[color="#008000"][color="#008000"] // Create the SlimDX device.
D3DDevice = [color="#0000ff"][color="#0000ff"]gcnew SlimDX::Direct3D9::Device( MS_direct3D,0,SlimDX::Direct3D9::DeviceType::Hardware,form->Handle, CreateFlags::HardwareVertexProcessing,presentParams );
SlimDX::Windows::MessagePump::Run( [color="#0000ff"][color="#0000ff"]dynamic_cast(del) );

}

~MySlimDX()
{

}

[color="#0000ff"][color="#0000ff"]public: [color="#0000ff"][color="#0000ff"]static [color="#0000ff"][color="#0000ff"]void MyMainLoop()

{


[color="#008000"][color="#008000"] Console::WriteLine([color="#a31515"][color="#a31515"]"SlimDX loop OK");

// Clear the backbuffer to a black color.
D3DDevice->Clear( SlimDX::Direct3D9::ClearFlags::Target, Color::Blue.ToArgb(), 1.0f, 0);

[color="#008000"][color="#008000"] // Begin the scene.
D3DDevice->BeginScene();

[color="#008000"][color="#008000"] // TODO : Perform some scene rendering.

[color="#008000"][color="#008000"] // End the scene.
D3DDevice->EndScene();

[color="#008000"][color="#008000"] // Present the backbuffer contents to the screen.
D3DDevice->Present();

}[color="#008000"][color="#008000"]//

};[color="#008000"][color="#008000"]// public ref class MySlimDX

Chiburi
Chiburi
I haven't used SlimDX much but I think that changing form->Activate() into form->Show() could fix your problem.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.