From: Paul G. <pga...@qw...> - 2001-07-28 21:20:37
|
On 28 Jul 2001, at 9:56, the Illustrious Jonathan Perez wrote: > Peter Puck's site seems to be gone now (except for the > cached version at Google. Anyone know where it's been > rehosted (if it has been)? Which URL are you using? There was a change made to the website back in March of this year, apparently it hasn't made the turnaround for the website for some reason. Anyway, until the turnaround does occur, try this URL which was working a couple of days ago: http://sites.netscape.net/ptrpck Paul G. > > __________________________________________________ > Do You Yahoo!? > Make international calls for as low as $.04/minute with Yahoo! Messenger > http://phonecard.yahoo.com/ > > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options at: > http://lists.sourceforge.net/lists/listinfo/mingw-users > |
From: Paul G. <pga...@qw...> - 2001-07-30 00:09:45
|
On 29 Jul 2001, at 18:33, the Illustrious Mike L wrote: > ----- Original Message ----- > From: "Jackson Yee" <jac...@ya...> > To: <min...@li...> > Sent: Saturday, July 28, 2001 3:07 PM > Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > > > I don't know where Peter's site has gone, but if you want to use > > DirectX > 8, > > you can download the DirectX SDK from MSDN and use it directly with > > the latest stable release of MinGW. > > Is this the first version (Mingw-1.0.1-20010726) of MinGW to support > this? Nope. DirectX has been minimally supported since it was available on the net for review (documentation, etc.). The first version of Dx which I used in a Mingw application was actually Dx3. Most NT4 developers prefer OpenGL since OpenGL is supported across all Windows based (win32api) platforms. DirectX, especially the latest versions, are not. Incidentally, the movie, "Final Fantasy: The Spriits Within" was created using SGIs' Silicon Graphics Onyx, Octane and 2000 servers to name only a few (OpenGL is standard on most, if not all SGI machines). Alias/Wavefront Maya and Pixar Renderman (Linux) were used for CG development. See http://www.sgi.com/features/2001/july/fantasy/ for more on this. Back to the subject at hand, Mingw development is focussed on Mingw Development Tool Set, and DirectX is Not Needed nor Required for Mingw to function regardless of how much Microsoft wants to hype their latest and greatest DirectX release. Paul G. |
From: Mike L <mi...@sp...> - 2001-07-30 00:55:34
|
----- Original Message ----- From: "Paul G." <pga...@qw...> To: <min...@so...> Sent: Sunday, July 29, 2001 8:02 PM Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > > > On 29 Jul 2001, at 18:33, the Illustrious Mike L wrote: > > > ----- Original Message ----- > > From: "Jackson Yee" <jac...@ya...> > > To: <min...@li...> > > Sent: Saturday, July 28, 2001 3:07 PM > > Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > > > > > I don't know where Peter's site has gone, but if you want to use > > > DirectX > > 8, > > > you can download the DirectX SDK from MSDN and use it directly with > > > the latest stable release of MinGW. > > > > Is this the first version (Mingw-1.0.1-20010726) of MinGW to support > > this? > > Nope. DirectX has been minimally supported since it was available on > the net for review (documentation, etc.). The first version of Dx > which I used in a Mingw application was actually Dx3. Most NT4 > developers prefer OpenGL since OpenGL is supported across all Windows > based (win32api) platforms. DirectX, especially the latest versions, > are not. Apologies, I should have been specific with my question: As I understood it, you needed to link to mingw-compatible libraries (libdxguid.a, etc) in the past. Jackson Yee's message indicates you can just link directly to MS's .lib files in MS's SDK with the new MinGW. I just wanted to know when this became possible. I have a page with some MinGW/DirectX info, documenting my own experiences, and I just wanted to try clarifying this issue so I could make some corrections, Thanks. - Mike |
From: Jackson Y. <jac...@ya...> - 2001-07-30 09:36:32
|
----- Original Message ----- From: "Mike L" <mi...@sp...> To: <min...@so...> Sent: Sunday, July 29, 2001 21:05 Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > Apologies, I should have been specific with my question: As I understood it, > you needed to link to mingw-compatible libraries (libdxguid.a, etc) in the > past. Jackson Yee's message indicates you can just link directly to MS's > .lib files in MS's SDK with the new MinGW. I just wanted to know when this > became possible. > > I have a page with some MinGW/DirectX info, documenting my own experiences, > and I just wanted to try clarifying this issue so I could make some > corrections, Thanks. The version that I'm using at the moment is 20010608. I'm not sure how long ld has had this capability, but it definitely saved me a lot of work not having to convert the .lib files in order to use them. Note that I haven't done anything other than to include the GUIDs in my program though, since the COM-based nature of DirectX means that the COM APIs do most of the work of locating, creating, and distributing method calls for you. Regards, Jackson Yee http://jacksonyee.welcome.to/ E-mails for help will be ignored unless I had asked for them. Please post to the group. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |
From: Rob L. <rl...@ar...> - 2001-07-30 15:55:33
|
Jackson Yee wrote: > > ----- Original Message ----- > From: "Mike L" <mi...@sp...> > To: <min...@so...> > Sent: Sunday, July 29, 2001 21:05 > Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > > Apologies, I should have been specific with my question: As I understood > it, > > you needed to link to mingw-compatible libraries (libdxguid.a, etc) in the > > past. Jackson Yee's message indicates you can just link directly to MS's > > .lib files in MS's SDK with the new MinGW. I just wanted to know when this > > became possible. > > > > I have a page with some MinGW/DirectX info, documenting my own > experiences, > > and I just wanted to try clarifying this issue so I could make some > > corrections, Thanks. > > The version that I'm using at the moment is 20010608. I'm not sure how long > ld has had this capability, but it definitely saved me a lot of work not > having to convert the .lib files in order to use them. Note that I haven't > done anything other than to include the GUIDs in my program though, since > the COM-based nature of DirectX means that the COM APIs do most of the work > of locating, creating, and distributing method calls for you. So GCC can link with the MS provided DX8 *.lib files directly. How is this possible? Is it because DX8 is C code? If not, then how is it possible to link with a C++ *.lib files created with MSVC++? Can you provide a simple example of a g++ command line linking together the *.lib files and creating a *.exe file? TIA, Rob |
From: Jackson Y. <jac...@ya...> - 2001-07-30 18:38:02
|
----- Original Message ----- From: "Rob Light" <rl...@ar...> To: <min...@li...> Sent: Monday, July 30, 2001 11:52 Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > So GCC can link with the MS provided DX8 *.lib files directly. How is > this possible? Is it because DX8 is C code? If not, then how is it > possible to link with a C++ *.lib files created with MSVC++? Can you > provide a simple example of a g++ command line linking together the > *.lib files and creating a *.exe file? Most people who use DirectX use the C++ interface because it's more precise and more efficient than using the Visual Basic interface, but DirectX itself is not a C++ library; it's a COM-based library where COM interfaces and pointers are the methods to access all functions and properties. Because COM is a binary interface, the different name-mangling, memory allocation, and such issues between varying C++ compilers don't matter, because they don't come into play. As far as the libraries themselves, all you're linking to is the definitions for the DirectX GUIDs. There aren't any C++ classes or functions to link to. As long as the compiler supports COM, DirectX can be used. For some sample code from the DirectShow documentation for playing a movie: main.cpp: ----------------------------------------------------- #include <dshow.h> int main(void) { IGraphBuilder* pGraph(NULL); IMediaControl* pMediaControl(NULL); IMediaEvent* pEvent(NULL); CoInitialize(NULL); CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); pGraph->RenderFile(L"[insert the location of a .avi file here]", NULL); pMediaControl->Run(); long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); pMediaControl->Release(); pEvent->Release(); pGraph->Release(); CoUninitialize(); } And the command line: g++ main.cpp -o test.exe ../dx8/lib/strmiids.lib -lole32 The one catch is that since you're linking directly to the *.lib files, you must specify the *full* path of the .lib file. Since you're not passing the library to ld via the -l option, ld won't know to search for it in any lib directories. Since I only needed strmiids.lib, which contains the definitions for IID_IGraphBuilder, IID_IMediaControl, and IID_IMediaEvent, that doesn't affect me much, but it could be annoying if you're linking to multiple .lib files. I haven't found any other problems, and my DirectShow based movie player is working great at this point. Regards, Jackson Yee http://jacksonyee.welcome.to/ E-mails for help will be ignored unless I had asked for them. Please post to the group. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |
From: Rob L. <rl...@ar...> - 2001-07-31 18:14:23
|
Jackson Yee wrote: <snip> > Most people who use DirectX use the C++ interface because it's more precise > and more efficient than using the Visual Basic interface, but DirectX itself > is not a C++ library; it's a COM-based library where COM interfaces and > pointers are the methods to access all functions and properties. Because > COM is a binary interface, the different name-mangling, memory allocation, > and such issues between varying C++ compilers don't matter, because they > don't come into play. > > As far as the libraries themselves, all you're linking to is the definitions > for the DirectX GUIDs. There aren't any C++ classes or functions to link > to. As long as the compiler supports COM, DirectX can be used. Hmmm, that's interesting. How exactly does this work? Can someone point me to some good reference material (on or offline) where I can learn how COM works? I'd like to know how the compiler/linker "resolves" the COM symbols and what mechanism "links" the method calls to the right code run time. <snip> > The one catch is that since you're linking directly to the *.lib files, you > must specify the *full* path of the .lib file. Since you're not passing the > library to ld via the -l option, ld won't know to search for it in any lib > directories. Since I only needed strmiids.lib, which contains the > definitions for IID_IGraphBuilder, IID_IMediaControl, and IID_IMediaEvent, > that doesn't affect me much, but it could be annoying if you're linking to > multiple .lib files. I haven't found any other problems, and my DirectShow > based movie player is working great at this point. What do the definitions for IID_IGraphBuilder, etc. contain? And where do the symbols for CoInitialize(), CoCreateInstance(), and CoUninitialize() reside? Surely they must be available in some type of library at link time, right? TIA, Rob |
From: Jackson Y. <jac...@ya...> - 2001-08-01 01:13:11
|
----- Original Message ----- From: "Rob Light" <rl...@ar...> To: <min...@li...> Sent: Tuesday, July 31, 2001 14:11 Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > Hmmm, that's interesting. How exactly does this work? Can someone > point me to some good reference material (on or offline) where I can > learn how COM works? I'd like to know how the compiler/linker > "resolves" the COM symbols and what mechanism "links" the method calls > to the right code run time. The COM page at the MSDN library would probably be a good place to start: http://msdn.microsoft.com/library/en-us/com/hh/com/comportal_3qn9.asp?frame= true There are many, many other resources out there on the web, so feel free to do a search at your favorite search engine for "COM tutorial" or something of that nature. I used to have a very nice Powerpoint presentation from a Microsoft senior developer on my computer comparing COM concepts to C++ concepts, but it has been lost somewhere in the large pile of documents that I've collected over the years. > What do the definitions for IID_IGraphBuilder, etc. contain? Those are the GUIDs identifying the DirectShow interfaces needed to interact with the filter graph. If you don't know what GUIDs are, they are a sequence of bytes, much like IP addresses, meant to distinguish a particular object from another. The acronym is Globally Unique IDentifiers, and they are one of the foundations of COM since all objects and interfaces have a GUID. It was Microsoft's solution to avoid namespace collisions such as namespaces in Java and C++ have been designed to do. With so many people around the world working on code at the same time, it was only a matter of time until two people decided to use the same name for two different objects, so COM relies on GUIDs rather than strings to identify components. > And where do the symbols for CoInitialize(), CoCreateInstance(), and > CoUninitialize() reside? Surely they must be available in some type of > library at link time, right? Yep, you're right. Those reside in the import library ole32 and are regular Win32 APIs to interact with the COM run-time. Regards, Jackson Yee http://jacksonyee.welcome.to/ E-mails for help will be ignored unless I had asked for them. Please post to the group. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |
From: Jonathan P. <jbp...@ya...> - 2001-07-30 14:38:01
|
> Back to the subject at hand, Mingw development is > focussed on Mingw > Development Tool Set, and DirectX is Not Needed nor > Required for Mingw > to function regardless of how much Microsoft wants > to hype their latest > and greatest DirectX release. Errr... I would have thought MinGW development is focused on being able to use the gcc compiler effectively in a Win32 environment and that means supporting the most important APIs one of which is DirectX. Not that I'm a fan of DirectX (I find it quite painful actually), but MinGW is starting to become a *REAL* alternative to commercial Windoze compilers. Also, afaik, DirectX 8 is now available for all the incarnations of Windows on the desktop (except the 'deprecated' ones of course). __________________________________________________ Do You Yahoo!? Make international calls for as low as $.04/minute with Yahoo! Messenger http://phonecard.yahoo.com/ |
From: Paul G. <pga...@qw...> - 2001-07-31 22:05:13
|
On 31 Jul 2001, at 14:11, the Illustrious Rob Light wrote: Jackson Yee, wrote: > > <snip> > > > Most people who use DirectX use the C++ interface because it's more > > precise and more efficient than using the Visual Basic interface, but > > DirectX itself is not a C++ library; it's a COM-based library where > > COM interfaces and pointers are the methods to access all functions > > and properties. Because COM is a binary interface, the different > > name-mangling, memory allocation, and such issues between varying C++ > > compilers don't matter, because they don't come into play. > > > > As far as the libraries themselves, all you're linking to is the > > definitions for the DirectX GUIDs. There aren't any C++ classes or > > functions to link to. As long as the compiler supports COM, DirectX > > can be used. > > Hmmm, that's interesting. How exactly does this work? Yes, please give us some examples. Given what Jackson Yee writes in his outline above, it would seem that DirectX (regardless of version) should work on all Windows platforms which have a C++ compiler, and yet it does not. Rob Light wrote: > Can someone > point me to some good reference material (on or offline) where I can > learn how COM works? I'd like to know how the compiler/linker > "resolves" the COM symbols and what mechanism "links" the method calls > to the right code run time. http://www.msdn.com Take a look at the MSDN library/documentation for COM. [skip] > TIA, > Rob Paul G. > > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options at: > http://lists.sourceforge.net/lists/listinfo/mingw-users > |
From: Mike L <mi...@sp...> - 2001-07-31 22:29:12
|
----- Original Message ----- From: "Paul G." <pga...@qw...> To: <min...@so...> Sent: Tuesday, July 31, 2001 6:05 PM Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > > > On 31 Jul 2001, at 14:11, the Illustrious Rob Light wrote: > > Jackson Yee, wrote: > > > > > <snip> > > > > > Most people who use DirectX use the C++ interface because it's more > > > precise and more efficient than using the Visual Basic interface, but > > > DirectX itself is not a C++ library; it's a COM-based library where > > > COM interfaces and pointers are the methods to access all functions > > > and properties. Because COM is a binary interface, the different > > > name-mangling, memory allocation, and such issues between varying C++ > > > compilers don't matter, because they don't come into play. > > > > > > As far as the libraries themselves, all you're linking to is the > > > definitions for the DirectX GUIDs. There aren't any C++ classes or > > > functions to link to. As long as the compiler supports COM, DirectX > > > can be used. > > > > > > Hmmm, that's interesting. How exactly does this work? > > Yes, please give us some examples. Given what Jackson Yee writes in > his outline above, it would seem that DirectX (regardless of version) > should work on all Windows platforms which have a C++ compiler, and yet > it does not. I was not aware that MinGW was capable of linking to Microsoft's .lib files at all. I tried replacing libdxguid.a with dxguid.lib in my own project and it seems to work fine. I haven't had time to do any other testing (eg, DirectDrawCreate, DirectSoundCreate, new DX8 objects, etc.) since I only use the ID values and use LoadLibrary to load the DLLs and extract the function names. - Mike |
From: Martin K. <ma...@ja...> - 2001-07-31 23:14:54
|
> > Yes, please give us some examples. Given what Jackson Yee writes in > > his outline above, it would seem that DirectX (regardless of version) > > should work on all Windows platforms which have a C++ compiler, and yet > > it does not. I believe it works on all platforms that have the directX runtimes installed. I use gcc C compiler though, which forces the rather ugly ->lpVtbl-> syntax. (It's C rather than gcc which forces that). > > I was not aware that MinGW was capable of linking to Microsoft's .lib files > at all. I tried replacing libdxguid.a with dxguid.lib in my own project and > it seems to work fine. I haven't had time to do any other testing (eg, > DirectDrawCreate, DirectSoundCreate, new DX8 objects, etc.) since I only use > the ID values and use LoadLibrary to load the DLLs and extract the function > names. I was also not aware of MinGW linking capability (thank you very much to everyone responsible for it!!). I have not had a chance to try it out, because I haven't been able to download the 100-odd MB of directX SDK. I have been using the same LoadLibrary/GetProcAddress method as Mike (which is even simpler in DX8 - For Direct 3D8 only one DLL and function is needed, and no GUIDs). The lib linking will give me the chance to use the D3DX utility libs a lot more easily. DirectX might not be needed nor required for Mingw to function, but this lib capability has made me seriously consider using it for commercial software development. I'm just sorry I don't have anything to put back into the project. Martin. |
From: Jackson Y. <jac...@ya...> - 2001-08-01 01:28:13
|
----- Original Message ----- From: "Mike L" <mi...@sp...> To: <min...@so...> Sent: Tuesday, July 31, 2001 18:38 Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > I was not aware that MinGW was capable of linking to Microsoft's .lib files > at all. I tried replacing libdxguid.a with dxguid.lib in my own project and > it seems to work fine. I haven't had time to do any other testing (eg, > DirectDrawCreate, DirectSoundCreate, new DX8 objects, etc.) since I only use > the ID values and use LoadLibrary to load the DLLs and extract the function > names. I wasn't aware of the linking ability myself-I found it out by accident when I was trying to create MinGW import libs from the SDK lib and renamed the wrong file. It's definitely a great time-saver not having to convert or reverse-engineer the SDK's header and lib files though. Now, I can use them directly in my projects, and not be concerned with copyright or other legal issues. I just tried linking to the SDK's d3d8.lib with the Direct3DCreate8() API, and the function call succeeded in returning a valid pointer. I don't have the experience with Direct3D to do more than that, but the situation definitely looks promising. Regards, Jackson Yee http://jacksonyee.welcome.to/ E-mails for help will be ignored unless I had asked for them. Please post to the group. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |
From: <jon...@fr...> - 2001-08-01 20:16:55
|
On 1 Aug 2001, at 0:17, Martin Keates wrote: > I believe it works on all platforms that have the directX runtimes installed. > I use gcc C compiler though, which forces the rather ugly ->lpVtbl-> syntax. > (It's C rather than gcc which forces that). You can solve this rather elegantly with wrapper defines, i.e #define dxCall(dxObj, moreParams) \ dxObj->lpVtbl->dxCall(moreParams) Or similar. Jon Svendsen |
From: Mike L <mi...@sp...> - 2001-07-29 01:46:42
|
----- Original Message ----- From: "Paul Garceau" <pga...@qw...> To: <min...@so...> Sent: Saturday, July 28, 2001 5:13 PM Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > > > On 28 Jul 2001, at 9:56, the Illustrious Jonathan Perez wrote: > > > Peter Puck's site seems to be gone now (except for the > > cached version at Google. Anyone know where it's been > > rehosted (if it has been)? > > Which URL are you using? > > There was a change made to the website back in March of this year, > apparently it hasn't made the turnaround for the website for some > reason. > > Anyway, until the turnaround does occur, try this URL which was > working a couple of days ago: > > http://sites.netscape.net/ptrpck > > Paul G. It's still there. The links seem to be broken though. If you want his DirectX page, go to http://sites.netscape.net/ptrpck/directx.htm Basically, the /ptrpck/ seems to be missing from the hyperlinks. - Mike |
From: Jason C. <ja...@so...> - 2001-07-29 02:31:11
|
I can't seem to access this site, the browser can't find it. However, I can find his main page, but the link from there to DirectX doesn't work either. --Jason Craig > > It's still there. The links seem to be broken though. If you want his > DirectX page, go to http://sites.netscape.net/ptrpck/directx.htm > Basically, the /ptrpck/ seems to be missing from the hyperlinks. > > - Mike |