www.digitalmars.com         C & C++   DMDScript  

D - DirectX / Windows

reply "Sean L. Palmer" <palmer.sean verizon.net> writes:
This is why people top-post.  Stupid M$ products won't even quote a reply
properly:

I still have that Direct3D test stuff in D, but I'd rather run it through
the latest D compiler to be sure it still works before sending it off to
someone.

If anyone wants it, let me know.

That code involves a few additions to D's windows.d (for really basic stuff,
even), and that was the main source of difficulty in getting it working,
iirc.

One would not be able to write even a simple windows application using the
windows.d that ships with DMD today.

Sean


From: "Mike Wynn" <mike.wynn l8night.co.uk>
Subject: Re: D wrap for GTK+
Date: Thursday, August 07, 2003 10:20 PM

you should do it for your own  personal reasons, currently most D ppl seems
to all be reinventing the wheels
I ported a large amount of the win32 headers, produced a templated library
to allow automatic dll function importing, got directx working from D
(someone else metioned that they had direct3d working but I've not heard any
more for a while) I even tried to get the ppl working on win32 wrappers etc
to co-operate but that was a fruitless task so resigned myself to continuing
my attempts to break the compiler with my bad coding (especially whilst
porting C files) and trying to get a 10 line "this breaks the compiler" to
post to Walter can be as much of a task as the 200K that was breaking it was
to write in the first place.
Aug 08 2003
parent reply "Mike Wynn" <mike.wynn l8night.co.uk> writes:
"Sean L. Palmer" <palmer.sean verizon.net> wrote in message
news:bgvseg$2arl$1 digitaldaemon.com...
 This is why people top-post.  Stupid M$ products won't even quote a reply
 properly:

 I still have that Direct3D test stuff in D, but I'd rather run it through
 the latest D compiler to be sure it still works before sending it off to
 someone.

 If anyone wants it, let me know.
I would like a copy, (and I assume you have no objection to me including the files you've porting in any releases of my other ported header etc).
 That code involves a few additions to D's windows.d (for really basic
stuff,
 even), and that was the main source of difficulty in getting it working,
 iirc.
I downloaded the latest MS SDK (Feb 2003) last week, was thinking I should start a "everyone port one file" thread but can't quite workout if it's actually legal to port the headers and redistribute them! there is only about 1000 files to port .... I've been thinking that phobos should be broken into two parts "deimos" and "phobos" with "deimos" being all the D and C files that D requires for writing a minimum app (hello world, using the OS's api routines) and Phobos all the rest which ppl might want to replace themselves
 One would not be able to write even a simple windows application using the
 windows.d that ships with DMD today.
now that there is a linux port that seems to be getting used, something does need to be resolved with how D deals with multi-platform development. (I can foresee many issues if someone tries to use D on a ARM/Thumb arch). I've yet to run the linux dmd, I assume it does d->c (then uses gcc) so potentially any platform that has gcc support can be build.
Aug 08 2003
next sibling parent reply "Sean L. Palmer" <palmer.sean verizon.net> writes:
"Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
news:bh0140$2er9$1 digitaldaemon.com...
 "Sean L. Palmer" <palmer.sean verizon.net> wrote in message
 news:bgvseg$2arl$1 digitaldaemon.com...
 I still have that Direct3D test stuff in D, but I'd rather run it
through
 the latest D compiler to be sure it still works before sending it off to
 someone.

 If anyone wants it, let me know.
 I would like a copy, (and I assume you have no objection to me including
the
 files you've porting in any releases of my other ported header etc).
Ok, I'll take time this weekend to resurrect that code and send it to you and QUS.
 That code involves a few additions to D's windows.d (for really basic
stuff,
 even), and that was the main source of difficulty in getting it working,
 iirc.
I downloaded the latest MS SDK (Feb 2003) last week, was thinking I should start a "everyone port one file" thread but can't quite workout if it's actually legal to port the headers and redistribute them! there is only about 1000 files to port ....
Yeah, that sucks. I'm no lawyer.
 I've been thinking that phobos should be broken into two parts "deimos"
and
 "phobos"
 with "deimos" being all the D and C files that D requires for writing a
 minimum app (hello world, using the OS's api routines)
 and Phobos all the rest which ppl might want to replace themselves
Hmm. Don't see the rationale.
 One would not be able to write even a simple windows application using
the
 windows.d that ships with DMD today.
One might say that it would be a better idea to work on a cross-platform GUI library instead. ;)
 now that there is a linux port that seems to be getting used, something
does
 need to be resolved with how D deals with multi-platform development. (I
can
 foresee many issues if someone tries to use D on a ARM/Thumb arch).

 I've yet to run the linux dmd, I assume it does d->c (then uses gcc) so
 potentially any platform that has gcc support can be build.
No, it's probably a direct port of the win32 version. Only produces x86 code. Sean
Aug 08 2003
parent "Mike Wynn" <mike.wynn l8night.co.uk> writes:
"Sean L. Palmer" <palmer.sean verizon.net> wrote in message
news:bh0khb$b1$1 digitaldaemon.com...
 "Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
 news:bh0140$2er9$1 digitaldaemon.com...
 "Sean L. Palmer" <palmer.sean verizon.net> wrote in message
 I would like a copy, (and I assume you have no objection to me including
the
 files you've porting in any releases of my other ported header etc).
Ok, I'll take time this weekend to resurrect that code and send it to you and QUS.
great.
 I downloaded the latest MS SDK (Feb 2003) last week, was thinking I
should
 start a "everyone port one file" thread but can't quite workout if it's
 actually legal to port the headers and redistribute them!
 there is only about 1000 files to port ....
Yeah, that sucks. I'm no lawyer.
I'll just move house .....
 I've been thinking that phobos should be broken into two parts "deimos"
and
 "phobos"
 with "deimos" being all the D and C files that D requires for writing a
 minimum app (hello world, using the OS's api routines)
 and Phobos all the rest which ppl might want to replace themselves
Hmm. Don't see the rationale.
well, part of phobos is actually required by dmd for correct D-ness like the support code of string switch or hashtable/assoc arrays. the rest (like c.stdio, stream etc are just extra "nice" things (I prefer the Java In/Out Stream/RandomAccess/DataIn/Output classes to a base seekable iostream class) TCP socket for instance has an Input and Output Stream, neither is seekable (getting OT) just think it's cleaner to have "required by compiler" and "standard runtime lib" separated especially if D makes it onto embedded (or small [PalmOS say]) devices when you might want a cut down runtime, and quite a lot of the "standard runtime lib" is very OS dependant (in places)
 One would not be able to write even a simple windows application using
the
 windows.d that ships with DMD today.
One might say that it would be a better idea to work on a cross-platform
GUI
 library instead.  ;)
I kind of had the initial plan to write a very thin wrapper over the win32 api so I could write a crossplatfrom gui lib over the top (skinnable so I could write a Java Swing look alike gui) keep looking at it, but can not make my mind up about where layout managers reside and how to intergrate dockable toolbars etc. hopefully playing with GTK under win32 and re examining SWT will give me more insparation to finish things off (currently it works well enough that I use it in preference to c/c++)
 now that there is a linux port that seems to be getting used, something
does
 need to be resolved with how D deals with multi-platform development. (I
can
 foresee many issues if someone tries to use D on a ARM/Thumb arch).

 I've yet to run the linux dmd, I assume it does d->c (then uses gcc) so
 potentially any platform that has gcc support can be build.
No, it's probably a direct port of the win32 version. Only produces x86 code.
shame :) had hope to see if I could abuse it to get the first D on Palm or GBA :)
Aug 08 2003
prev sibling parent reply "Walter" <walter digitalmars.com> writes:
"Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
news:bh0140$2er9$1 digitaldaemon.com...
 I've yet to run the linux dmd, I assume it does d->c (then uses gcc) so
 potentially any platform that has gcc support can be build.
No, it generates elf object files directly.
Aug 12 2003
parent reply "Mike Wynn" <mike.wynn l8night.co.uk> writes:
"Walter" <walter digitalmars.com> wrote in message
news:bhc070$2439$1 digitaldaemon.com...
 "Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
 news:bh0140$2er9$1 digitaldaemon.com...
 I've yet to run the linux dmd, I assume it does d->c (then uses gcc) so
 potentially any platform that has gcc support can be build.
No, it generates elf object files directly.
pity ..... and is there a reason that mingw and cygwin objdump/objcopy don't think that dmd (win32) generated exe's are pe-i386 exes (can dump other exes) `objdump -b pe-i386 guitest.exe` `objdump: guitest.exe: File format not recognized` (fails on console or gui apps) can the win32 version generate elf objects ? I remember some comments about writing an OS in D, and kicking about on my hdd is an old experiment I did to see how much could be written using gcc (mingw) (apart from irq handlers and entry point in asm (and a bootload written using fasm to kick the CPU into protected mode) it was all C (flat memory model no paging all at ring 0) though I'd port it to D and see if I could get it to run but don't seem to be able to abuse dmd/link as much as you can ld/gcc ... %.bin : %.elf objcopy -R .note -R.comment -S -O binary $< $ %.o : %.c $(GCC) -Wall -O3 -Isrc -c -o obj\$( F) $< $(KERNEL_ELF) : $(OBJS) $(LD) -o $(KERNEL_ELF) -Ttext 0x20000 -e entry_point $(patsubst %, obj\\%, $(OBJS))
Aug 12 2003
parent "Walter" <walter digitalmars.com> writes:
"Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
news:bhc52m$285n$1 digitaldaemon.com...
 and is there a reason that mingw and cygwin objdump/objcopy don't think
that
 dmd (win32) generated exe's are pe-i386 exes (can dump other exes)
 `objdump -b pe-i386 guitest.exe`
 `objdump: guitest.exe: File format not recognized`
 (fails on console or gui apps)
All I can say is it's a bug in objdump. DMD generates perfectly valid PE files. Use my dumpers! (dumpexe, dumpobj, and obj2asm)
 can the win32 version generate elf objects ?
No.
Aug 12 2003