Advertisement Jump to content
  • Advertisement

Freestyler

Member
  • Content Count

    33
  • Joined

  • Last visited

Community Reputation

103 Neutral

About Freestyler

  • Rank
    Member
  1. Freestyler

    Problem creating 3D grid

    I've just finished using the same books code, I ported the code to DX11 & Qt and it's working alright for me. The one issue i had was setting both the Vertex Buffer and Index Buffers ByteWidth correctly, I couldn't find any documentation on it. bd.ByteWidth = sizeof (GridStruct) * 1536; bd.ByteWidth = sizeof(WORD ) * 512; So I would suggest trying to make sure you have enough memory allocated to make the grid. Otherwise all sorts of interesting effects like random lines or messed up triangles seem to be a common issue, the memory needed to be increased depending on the number of Rows and Columns.. Hope it helps.
  2. Freestyler

    [DX11] Enumerate adapters

    In the Nvidia control panel under program settings, there is a list of .exe files that can specified. If you have the box "Show only programs on this computer" you won't likely see it, but there are profiles that are DX9/10/11samples and lots of games that will switch to whatever the profile tells it too, you can change this yourself. I'm not sure where these profiles are located on the HDD however.
  3. Hi peoples, I'm trying to just get a simple the Microsoft DX11 Tutorial 2 Triangle compiled, and while the Microsoft example works, I'm using Qt for the GUI so my code is ever so slightly different. Everytime i use the same copy and pasted code from the MS tutorial or write it myself for my own project, I'm getting "error C2660: 'iD3D11::CompileShaderFromFile' : function does not take 4 arguments" Does anyone know why and what is causing the error?: Google has not been helpful, with any other instances of this issue. HRESULT hr = S_OK; // Compile the vertex shader ID3DBlob* pVSBlob = NULL; hr = CompileShaderFromFile( L"Tutorial02.fx", "VS", "vs_4_0", &pVSBlob ); I can post the rest of the code if it's helpful.... Any ideas would be appreciated, Obviously the Microsoft example does take those 4 arguments.
  4. Freestyler

    DX10 vs DX11 Effects and Others:

    The errors are useless, as they are not truly the errors, Compiler is wrong. Says I'm missing a ; which i'm not because it compiles fine when using DX10. Has anyone managed to get DX11 Effect code working at ALL? I'm yet to find anyone who has got it to work. It would be easier if someone who actually uses DX11 could try and compile my code. I need to know why i cannot get Effect to work, which header is now allowing me to call it's functions? I cannot believe the inconsistency of Microsoft is just so crap.
  5. Hi, I am trying to convert DX10 Tutorial 2 to DX11... Basically just changing all of the D3D10 references to D3D11 works for everything except: Effect, Technique and DriverType. I have compiled the Effect library myself, and copied the relevant files into their include path. But i still get an amazing amount of errors. Has anyone got a working example tutorial on how to handle effects etc, As i cannot find enough info on what and why this has changed... #include <windows.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dx11effect.h> #include <d3dx11dbg.h> #include <D3DX11tex.h> #include <D3DX11core.h> #include <D3DX11async.h> #include <D3DX11.h> #include <D3D11Shader.h> #include <D3D11SDKLayers.h> #include <D3D11.h> #pragma comment(lib,"D3DX11EffectsD.lib") #pragma comment(lib,"D3DX11Effects.lib") #pragma comment(lib,"D3Dcommon.lib") #pragma comment(lib, "D3DCompiler.lib") #pragma comment(lib, "d3d11.lib") #pragma comment(lib, "d3dx11.lib") #pragma comment (lib, "d3dx11d.lib") //-------------------------------------------------------------------------------------- // Structures //-------------------------------------------------------------------------------------- struct SimpleVertex { D3DXVECTOR3 Pos; }; //-------------------------------------------------------------------------------------- // Global Variables //-------------------------------------------------------------------------------------- HINSTANCE g_hInst = NULL; HWND g_hWnd = NULL; D3D11_DRIVER_TYPE g_driverType = D3D11_DRIVER_TYPE_NULL; /// No Reference ID3D11Device* g_pd3dDevice = NULL; IDXGISwapChain* g_pSwapChain = NULL; ID3D11RenderTargetView* g_pRenderTargetView = NULL; ID3D11Effect* g_pEffect = NULL; //No Reference ID3D11EffectTechnique* g_pTechnique = NULL; // No Reference ID3D11InputLayout* g_pVertexLayout = NULL; ID3D11Buffer* g_pVertexBuffer = NULL; //-------------------------------------------------------------------------------------- // Forward declarations //-------------------------------------------------------------------------------------- HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow ); HRESULT InitDevice(); void CleanupDevice(); LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); void Render(); //-------------------------------------------------------------------------------------- // Entry point to the program. Initializes everything and goes into a message processing // loop. Idle time is used to render the scene. //-------------------------------------------------------------------------------------- int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow ) { if( FAILED( InitWindow( hInstance, nCmdShow ) ) ) return 0; if( FAILED( InitDevice() ) ) { CleanupDevice(); return 0; } // Main message loop MSG msg = {0}; while( WM_QUIT != msg.message ) { if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else { Render(); } } CleanupDevice(); return ( int )msg.wParam; } //-------------------------------------------------------------------------------------- // Register class and create window //-------------------------------------------------------------------------------------- HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow ) { // Register class WNDCLASSEX wcex; wcex.cbSize = sizeof( WNDCLASSEX ); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon( hInstance, ( LPCTSTR )IDI_TUTORIAL1 ); wcex.hCursor = LoadCursor( NULL, IDC_ARROW ); wcex.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 ); wcex.lpszMenuName = NULL; wcex.lpszClassName = L"TutorialWindowClass"; wcex.hIconSm = LoadIcon( wcex.hInstance, ( LPCTSTR )IDI_TUTORIAL1 ); if( !RegisterClassEx( &wcex ) ) return E_FAIL; // Create window g_hInst = hInstance; RECT rc = { 0, 0, 640, 480 }; AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE ); g_hWnd = CreateWindow( L"TutorialWindowClass", L"Direct3D 11 Tutorial 2: Rendering a Triangle", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL ); if( !g_hWnd ) return E_FAIL; ShowWindow( g_hWnd, nCmdShow ); return S_OK; } //-------------------------------------------------------------------------------------- // Create Direct3D device and swap chain //-------------------------------------------------------------------------------------- HRESULT InitDevice() { HRESULT hr = S_OK; RECT rc; GetClientRect( g_hWnd, &rc ); UINT width = rc.right - rc.left; UINT height = rc.bottom - rc.top; UINT createDeviceFlags = 0; #ifdef _DEBUG createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; #endif D3D11_DRIVER_TYPE driverTypes[] = //No Reference { D3D11_DRIVER_TYPE_HARDWARE, //No Reference D3D11_DRIVER_TYPE_REFERENCE, // No Reference }; UINT numDriverTypes = sizeof( driverTypes ) / sizeof( driverTypes[0] ); DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( &sd, sizeof( sd ) ); sd.BufferCount = 1; sd.BufferDesc.Width = width; sd.BufferDesc.Height = height; sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; sd.BufferDesc.RefreshRate.Numerator = 60; sd.BufferDesc.RefreshRate.Denominator = 1; sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.OutputWindow = g_hWnd; sd.SampleDesc.Count = 1; sd.SampleDesc.Quality = 0; sd.Windowed = TRUE; for( UINT driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++ ) { g_driverType = driverTypes[driverTypeIndex]; hr = D3D11CreateDeviceAndSwapChain( NULL, g_driverType, NULL, createDeviceFlags, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice ); if( SUCCEEDED( hr ) ) break; } if( FAILED( hr ) ) return hr; // Create a render target view ID3D11Texture2D* pBuffer; hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D10Texture2D ), ( LPVOID* )&pBuffer ); if( FAILED( hr ) ) return hr; hr = g_pd3dDevice->CreateRenderTargetView( pBuffer, NULL, &g_pRenderTargetView ); pBuffer->Release(); if( FAILED( hr ) ) return hr; g_pd3dDevice->OMSetRenderTargets( 1, &g_pRenderTargetView, NULL ); // Setup the viewport D3D11_VIEWPORT vp; vp.Width = width; vp.Height = height; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; vp.TopLeftX = 0; vp.TopLeftY = 0; g_pd3dDevice->RSSetViewports( 1, &vp ); // Create the effect DWORD dwShaderFlags = D3D11_SHADER_ENABLE_STRICTNESS; //No Reference #if defined( DEBUG ) || defined( _DEBUG ) // Set the D3D10_SHADER_DEBUG flag to embed debug information in the shaders. // Setting this flag improves the shader debugging experience, but still allows // the shaders to be optimized and to run exactly the way they will run in // the release configuration of this program. dwShaderFlags |= D3D11_SHADER_DEBUG; #endif hr = D3DX11CreateEffectFromMemory( L"Tutorial02.fx", NULL, NULL, "fx_4_0", dwShaderFlags, 0, g_pd3dDevice, NULL, NULL, &g_pEffect, NULL, NULL ); if( FAILED( hr ) ) { MessageBox( NULL, L"The FX file cannot be located. Please run this executable from the directory that contains the FX file.", L"Error", MB_OK ); return hr; } // Obtain the technique g_pTechnique = g_pEffect->GetTechniqueByName( "Render" ); // Define the input layout D3D11_INPUT_ELEMENT_DESC layout[] = { { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, }; UINT numElements = sizeof( layout ) / sizeof( layout[0] ); // Create the input layout D3D11_PASS_DESC PassDesc; // No Reference g_pTechnique->GetPassByIndex( 0 )->GetDesc( &PassDesc ); // No Reference hr = g_pd3dDevice->CreateInputLayout( layout, numElements, PassDesc.pIAInputSignature, PassDesc.IAInputSignatureSize, &g_pVertexLayout ); if( FAILED( hr ) ) return hr; // Set the input layout g_pd3dDevice->IASetInputLayout( g_pVertexLayout ); // Create vertex buffer SimpleVertex vertices[] = { D3DXVECTOR3( 0.0f, 0.5f, 0.5f ), D3DXVECTOR3( 0.5f, -0.5f, 0.5f ), D3DXVECTOR3( -0.5f, -0.5f, 0.5f ), }; D3D11_BUFFER_DESC bd; bd.Usage = D3D11_USAGE_DEFAULT; bd.ByteWidth = sizeof( SimpleVertex ) * 3; bd.BindFlags = D3D11_BIND_VERTEX_BUFFER; bd.CPUAccessFlags = 0; bd.MiscFlags = 0; D3D11_SUBRESOURCE_DATA InitData; InitData.pSysMem = vertices; hr = g_pd3dDevice->CreateBuffer( &bd, &InitData, &g_pVertexBuffer ); if( FAILED( hr ) ) return hr; // Set vertex buffer UINT stride = sizeof( SimpleVertex ); UINT offset = 0; g_pd3dDevice->IASetVertexBuffers( 0, 1, &g_pVertexBuffer, &stride, &offset ); // Set primitive topology g_pd3dDevice->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST ); return S_OK; } //-------------------------------------------------------------------------------------- // Clean up the objects we've created //-------------------------------------------------------------------------------------- void CleanupDevice() { if( g_pd3dDevice ) g_pd3dDevice->ClearState(); if( g_pVertexBuffer ) g_pVertexBuffer->Release(); if( g_pVertexLayout ) g_pVertexLayout->Release(); if( g_pEffect ) g_pEffect->Release(); if( g_pRenderTargetView ) g_pRenderTargetView->Release(); if( g_pSwapChain ) g_pSwapChain->Release(); if( g_pd3dDevice ) g_pd3dDevice->Release(); } //-------------------------------------------------------------------------------------- // Called every time the application receives a message //-------------------------------------------------------------------------------------- LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { PAINTSTRUCT ps; HDC hdc; switch( message ) { case WM_PAINT: hdc = BeginPaint( hWnd, &ps ); EndPaint( hWnd, &ps ); break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hWnd, message, wParam, lParam ); } return 0; } //-------------------------------------------------------------------------------------- // Render a frame //-------------------------------------------------------------------------------------- void Render() { // Clear the back buffer float ClearColor[4] = { 0.0f, 0.125f, 0.3f, 1.0f }; // red,green,blue,alpha g_pd3dDevice->ClearRenderTargetView( g_pRenderTargetView, ClearColor ); // Render a triangle D3D11_TECHNIQUE_DESC techDesc; // No Refernece g_pTechnique->GetDesc( &techDesc ); for( UINT p = 0; p < techDesc.Passes; ++p ) { g_pTechnique->GetPassByIndex( p )->Apply( 0 ); g_pd3dDevice->Draw( 3, 0 ); } // Present the information rendered to the back buffer to the front buffer (the screen) g_pSwapChain->Present( 0, 0 ); }
  6. I too would like some information on this issue. I cannot seem to get it to work either, I have compiled the Effect11.lib #pragma comment(lib, "d3d11.lib") #pragma comment(lib, "d3dx11d.lib") #pragma comment(lib, "D3DX11Effects.lib") #pragma comment(lib, "D3DX11EffectsD.lib) I have tried to add the above lines, which made no difference. Why should i have to compile the effect library myself anyway? I did not have to do this with DX9 or DX10, why is Microsoft so inconsistent and fail to mention anything on the issue. Does anyone have a simple DX11 sample code that compiles... I'm currently up to 118 errors compared to my DX10 code that compiles fine. But what about a header file? I cannot seem to fine the relevant header files. #include <d3d11.h> #include <d3dx11.h> #include <d3dx11tex.h> #include <d3dx11core.h> #include <d3dx11async.h> #include <d3d11SDKLayers.h> #include <d3d11Shader.h> #include <d3dx11effect.h>// Is this suppposed to do anything? The last file is not even included i copied it from the library directory i compiled, When i copied this header into the same directory as the others, It gives the error "fatal error C1083: Cannot open include file: 'd3dx11effect.h': No such file or directory" Seriously confused, I also find it crap that Microsoft have tutorials for DX9 and DX10 and simply fail to do the same for DX11... Any help on the matter would be appreciated, It's the third time i have seen this thread make an appearance.
  7. Did you add -direct3d support when compiling the libraries using configure from the MSVC console? If so, are you using either "setAttribute(Qt::WA_MSWindowsUseDirect3D, true);" or running your .exe file also with the -direct3d switch, eg myfile.exe -direct3d These are both required to stop the "flickering associated" as your paintEvent seems fine.
  8. Freestyler

    Nokia shuns Windows and Direct3D Users!

    Quote:Original post by riku You really should not whine about open source projects dropping a feature you liked. Where have i done this please? I'm letting other Direct3D users know so they avoid the same pitfalls, sorry if you whingers see that as whinging, but to me i was suggested Qt as a GUI framework from this forum for developing my own apps and code, and now it's taken away. This fact was not documented very well, i had no idea it was "experimental" until after they have dropped support for it, and now that i have wasted 6 months learning a framework that no longer runs the code the same as it did, i seem to have a right to be a little pissed personally. If Qt could document it, comment on it or tell me what the -direct3D switch was doing, than i may have a chance of doing it myself manually without the burden being on Trolltech to begin with?. Or why i have "fighting"due to double buffering this would at least be acceptable. I was looking at becoming a commercial user of Qt because i plan on writing Plugins for Newtek CORE. Newtek have recently gone C++ and changed to Qt as well and are commercial users of Nokia's GUI for there upcoming 3D application. So to claim i shouldn't be able to "whinge" when they drop an important reason as to why i would be paying $3000 for a commercial license in the first place, is also a little misplaced i think. The MAIN point i think others are missing is, I didn't ask for Trolltech to offer Direct3D class in Qt, i agree this is more work for Nokia that they shouldn't really maintain. Qt have recently added their own QtOGL class, i personally don't need that either as i always subclassed my own from QWidget. So let me create my own Direct3D Class for Qt and let me use that? But to stop the ability for other rendering engines to work within it, i think is my main gripe, and i think is a shortsighted option to take for Qt. If i knew how to hack around the issues and to allow my PaintEvent to not fight with Qt's then it would be a moot point, but nonody has even gotten close to explaining this to me via Qt support channels. So perhaps "support for D3D" can be dropped, but preventing it from working allogether seems like a very big reason to avoid using Qt for gaming or 3D visualization for anything other than OGL.I think that truly makes it a lot less Windows friendly to most on this forum. Cheers,
  9. Freestyler

    Nokia shuns Windows and Direct3D Users!

    Quote:Original post by magic_man Yes stop whinging like a baby. Yes I'm not allowed to voice my opinions, but your complaints of others frustrations are golden, don't let the irony hit you on the back of the head on the way out...("Don't take my mummy away") People in Glass houses shouldn't call the kettle black, and you DO know what i'm talking about... :) Save your not useful comments for something you at least understand, and leave the rest of the discussions for people that can understand them.
  10. Freestyler

    Nokia shuns Windows and Direct3D Users!

    Original post by Sneftel Quote:Original post by Freestyler Hence Qt supporting OpenGL as The 3D Graphics Layer, because it is a lowest common denominator of cross-platform graphics, which does most of the things most people would want to do (including, BTW, CUDA, since you mentioned that you want that). Cross Platform, should imply that i can use it on the platform of my choosing, and i could do this when i started with Qt. I don't care if Qt has OGL or Direct3D classes, i generally subclass and implement my own, which totally means Nokia don't have to support either themselves, just make sure that i have the ability to choose my own custom events. Basically Qt shouldn't worry if I'm using D3D or OGL, it should just paint my demo window regardless. Quote:It sucks that you were left high and dry from them abandoning that development branch, though. If it's any consolation, OpenGL is very, very similar to D3D in all the ways that count. Thanks, but i already know OGL and have used it many times in the past, I'm just learning D3D and FWIW, i think DX10/DX11 are miles in front of OGL 3.2 in performance, features and ease of use. Just getting the right headers, GLEW, Kronos headers and then Nvidia 3.2 drivers for my laptop is a pain, and then only to have more convoluted code running slower FPS isn't something i want to go back to. Ever since they scrapped immediate mode, i jumped to D3D and don't wish to return. But i won't say i ain't considering it, and i appreciated your thoughts. On top of this i think Qt's OGL changes for 4.6 are just as bad an idea as dropping D3D. OGL used to be OGL, now you have to write QtOGL so the syntax is now different. (Doh!) Cheers, PS.... Anyone have any suggestions for alternative GUI framworks, is WXWidgets anygood?
  11. Freestyler

    Nokia shuns Windows and Direct3D Users!

    Quote:Original post by Codeka Do you have a link to the announcement where they've actually declared that they're dropping support for it? http://qt.nokia.com/developer/changes/changes-4.6.0 "**************************************************************************** * Important Behavior Changes * **************************************************************************** - The experimental Direct3D paint engine has been removed. The reason for this is that Nokia focuses on OpenGL for desktop hardware accelerated rendering." Ironically the top of the document states "The Qt version 4.6 series is binary compatible with the 4.5.x series. Applications compiled for 4.5 will continue to run with 4.6..." To which i say Hahahahahahahahahah..... Quote:Perhaps it just hasn't been ported to 4.6 yet? I have been asking every Qt list, forum and person i can to get any info on how and why it was done and removed. Amazing when Qt can be used to develop Windows Mobile apps, but not Direc3D apps in Windows. Quote:I can understand your frustration, but I'm not sure how the painter affects your ability to use Direct3D with Qt anyway? You can still derive a class from QWidget and create an IDirect3DDevice that uses it as the device window... No you cannot, Qt will always overwrite my custom paintEvent now, so you have fighting or flickering of both paintengines, i.e i can see my D3D window when i resize or cause an update, but it's immediately overwritten by Qt's double buffering. (And thanks yes it's very frustrating) But Qt does still allow you to use Direct3D with a QWidget (as far as I can tell, at least).[/quote] No it doesn't and with all due respect, i wish you (others) could back your claims up, before assuring me it should work (as plenty of people who haven't tried it, claim it "should still work") If this were true i would not have a problem like i do now, and i would likely kiss you... ;) If someone can tell me what the "-direct3D" switch was doing behind the Qt scenes i would be very happy, documentation is absent on these topics. Basically in 4.53 if you didn't build libraries with "-direct3D" it would exhibit the same behavior as it is now. (Flickering and fighting with QWidget or QMainWindow with the paintevent) You can see the issues discussed here previously http://www.qtcentre.org/forum/f-qt-programming-2/t-direct3d-widget-19885.html/?highlight=Direct3D the OP of this thread also needed to compile using -direct3d otherwise he had flickering, it's the same problem i have now that "-direct3d" has been removed. So in 4.6 or above this will seemingly be an issue, and i guess not just for D3D but for all custom painting events, which is why i think this is so stupid. Anyway thanks for the replies. Quote:Original post by krum Quote:Original post by Freestyler Firstly Qt is both commercial and GPL, Qt is LGPL. Huge difference. Sorry but i don't get the relevance or huge difference to the discussion or any of it's points?
  12. Freestyler

    Nokia shuns Windows and Direct3D Users!

    Quote:Original post by lmelior Further, to suggest that an open-source, cross-platform framework needs to support the proprietary, Windows-only Direct3D is pretty ridiculous. Firstly Qt is both commercial and GPL, so open source is incorrect, if i wanted to commercially produce 3D visualization software using CUDA and DX3D i no longer can use the Commercial or Opensource Nokia Qt frameworks to do so. So how is that an Opensource or Cross platform Framework? Secondly, I think it is you that has "Cross Platform" incorrectly applied in this instance. Cross Platform should imply that i can use Qt on either Mac/Windows/Linux to develop the tools and applications i want. NOT that i MUST only use Qt with OGL on platform X, as this truly isn't an open or cross platform framework at all. It's a proprietary API being forced by an "Open Cross Platform framework" OGL is just as closed as Direct3D really. If you don't support Direct3D or other Windows functions, than i say it's not cross platform at all. Qt4.53 which offered me the choice sure, but 4.6 with it's forcing of OGL on Windows is anything but cross platform friendly IMHO. Quote: Frankly, if they kept Direct3D-specific functionality, that makes Qt less of a cross-platform framework. How does it stop anyone from using Qt on Mac/Linux or Windows? Does it stop others from using OGL on Mac/Linux? But the reverse stops me from using Direct3D and Windows, how is this better? I don't know why they have to support Direct3D at all, just simply allow ANY other drawing engines to be used, rather than forcing only OGL. That is far more shortsighted and makes it far less useful for myself. After teaching myself C++ via Qt and Direct3D, i'm now lost without any ability for any of my code projects in the last 12months to work with Qt4.6 or above. Now it makes it completely irrelevant for a Windows GUI framework, if it cannot handle all the areas of Windows it needs to, it may as well just support Mac/Linux and OGL. Quote:A quick search tells me the "Direct3D paint engine" was only an experimental addition from 4.3 to 4.5, which was removed to focus on OpenGL support. So they add features i can use in 4.3 and remove them in 4.6. Great idea Nokia! OGL and Direct3D both work fine in 4.53, 4.6 only allows OGL. Again i don't really need a D3D Class in Qt, i just need to ability to overide it with my own custom paint event, which cannot be done now in 4.6. Quote:I haven't messed with Qt yet so I really don't know how big of a change this is. Either do i because Nokia offer no documentation in what the "-direct3D" switch done when configuring libraries. Quote: But, it seems to me that if you have a lot of D3D stuff in your code and you are using Qt, you're doing it wrong. Not sure what that is meant to imply, but i do have a lot of D3D code, and it all works great until Nokia's stupidity to change their mind. Currently i can use Direct3D which is better optimized for Nvidia consumer cards than that of OGL, it also is better supported and easier with documentation and development, and arguably more powerful these days. If i want to port my application to Mac and Linux, it means only my D3D class has to be changed to OGL, every other bit of the code is portable. So i say that it's not me who is doing it wrong at all. :) But for D3D users stay clear of Qt4.6 and beyond.
  13. Previously i have been teaching myself C++ via Qt and Direct3D 10. This has been fun and quite a learning experience, however Nokia/Trolltech have completely removed support for Direct3D functionality, so I'm now left with code that works in Qt4.53 but will never work in Qt4.6 or later. (DOH!) I cannot believe Nokia can shun Windows and Direct3D developers.For a GPL/LGPL cross platform framework, i believe they have lost the plot. When you basically support OGL and Linux, and Windows is just abandoned i think they need to rethink the term "Cross Platform Framework". I have not been able to get anyone from Trolltech or Nokia to comment on why, but i thought i would let Direct3D users know that Nokia's Qt4.6 is not a viable option for Direct3D development anymore. I see Qt suggest around here a lot, but perhaps many aren't aware of it's new limitations. Can anyone tell me the nicest alternative to write some simple D3D GUI's preferably one that one abandon me tomorrow because I'm a D3D user. Anyway @$@#$@#$%#$%@#@ NOKIA$@#@#$ @#$@#$@#$ TROLLTECH@#$@#$@#&*$(!!!!! /RANT
  14. Here is an idea i remember posted from 2006 from Cajomi. "Here is my idea: The new heightfield definition is build up on a normal heightfield, like it is used now. A second byte heightfield contains a table, where for all points of the heightfield it is stored, how many heights are assigned to this point. A cave, simple would have here one entry, what means, there are all over two heights assigned to one point. A third heightfield now holds the heights, in the typical format, in the order of second heightfield. So, if there is a point, with four heights assigned, in the third heightfield, these four points are followed directly. Such a construction would allow use -terrain generator developers- to create new algorithm, for more realistic and more detailrich terrains. I agree, the rivers are still a problem in heightfield generation. But be sure, we, the developers of terrain generators, are working on this problem." It still sounds interesting and plausible to me, but i have never tried to implement it.
  15. Freestyler

    Unreal Editor 3 Released for Free

    Quote:Original post by Palidine Has anyone spent more time poking at this? Does it actually come with a native SDK? I didn't see any headers or libs in there. What does it have that the UDK that's shipped with Unreal games doesn't? No native code, and no 64bit separate it from the professional license. To be fair Unity is the same, only really Torque provides full source code.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!