Afternoon, Scronty.

I figured out your problem. No worries.:alright:

Go (Here) to get the file.

Posted on 2001-07-25 06:15:42 by Scronty
Afternoon, all.

The 'Textures' tutorial is now posted (Here).:)

I've had to cheat a bit. When I tried the 'D3DXCreateTextureFromFile' function, I received 18 (:mad: ) unresolved externals!

Until someone creates a proggy which iterates through a directory, reading in each '*.h' or '*.idl' file encounted, and searching for key words (e.g. 'CIacos'), I'll just have to try and recreate the 'D3Dx8.lib' with my own functions (but keeping the same names).:eek:

Anyone interested in giving a hand?:grin:

Posted on 2001-07-27 06:14:36 by Scronty
The windows 2000 file search can find text in files.
Posted on 2001-07-27 17:16:05 by bitRAKE
It's not in any of the DXSDK include files..
I can only find it in files:

So no help I guess..

I have drunk about 15 beers so I hope this post is making somekind of sens :grin:
Posted on 2001-07-27 20:25:19 by Aaro
Afternoon, Bitrake.

I've just checked WinMe. It's file-search can look for text as well.:grin:

I'll start looking for the appropriate 'defines', and which '*.lib's I'll need to include.:alright:

Hopefully I'll find what I need. The 'Mesh' stuff will get a bit hairy if I've got to recreate the functions.:eek:

Posted on 2001-07-27 21:30:38 by Scronty
I can't help but to smile at your pic. :)
Posted on 2001-07-27 23:04:34 by bitRAKE
Scronty, how did you get around the other dependances in dx83d.lib (like __exception_list, __exception_, OpenRegKey, etc...)? Right now I'm just including: advapi32.lib, msvcrt.lib : to complete the link, but that stuff is just discarded. Is there a way to have LINK ignore that stuff all together?

Oh, both _CIacos and _fltused are from msvcrt.dll:
_CIacos (cos function of st(0))
int _fltused = 0x9875;
Posted on 2001-07-29 03:23:44 by bitRAKE
Afternoon, Bitrake.

No wonder I can't find find the info! The current Platform SDK only comes with a 64-bit version of 'msvcrt.lib':mad: which I can't use.

I get 18 'unresolved externals' if I try to use 'D3DXCreateTextureFromFileA'. That's why I 'cheated' and recreated my own function (it's not very versatile, but, hey, it works).;)

I still haven't figured out how to get around the other dependances in d3dx8.lib. I have a feeling that the dependances are wasted space (i.e. one of them for 'D3DXCreateTextureFromFileA' is 'sprintf'!), however I'm not very experienced when it comes to LINK or creating a '*.lib' from a '*.dll' (if that's possible).

What are the 'includes' and 'includeilb's that you're using?
I'm only using '', 'd3d8.lib, and 'd3dx8.lib.

The '*.lib's I use are from the '\Microsoft Platform SDK\Lib\' folder.

Posted on 2001-07-29 05:32:46 by Scronty
The only two others I'm using are: advapi32.lib, msvcrt.lib All your conversions work fine. Great work! :)

If you go to Elicz's web site, or just download THIS and look in the LIB directory - it tells how to make a LIB from a DLL and use it. I own VS6 and I have the Platform SDK and DX8 SDK and the BizzarCreations Includes (why did you change the name of one of the files you use?). I'm almost done converting the 6th tutorial. I've been working on these from RadASM - cool editor.
Posted on 2001-07-29 15:30:35 by bitRAKE
Afternoon, Bitrake.

why did you change the name of one of the files you use?

Which file are you talking about?

I'm keeping all of the '*.inc's and '*.lib's, which I use for D3D8 stuff, in separate folders (i.e. '\masm32\INCLUDEDX8' and '\masm32\LIB\DIRECTX'). This way, I can modify any of the files (i.e. change the '*.inc' file information or use a different '*.lib') without interferring with the running of other proggys.:alright:

I've finished d/loading the '*.zip' from the link you supplied. I'll take a look at it.:)

At the moment I'm flipping between; translating the 6th Tutorial (like yourself); trying to make the d3dx8 calls work; and using alpha-blending to create transparency (there are no samples on this in the P/SDK). So far, I've got the cylinder alternating opaque/transparent. As it rotates end-over-end, first the left side is opaque - the right side transparent, then the right side is opaque - and the left side is transparent:tongue:. After looking at some of the better tutorials on the 'net, it looks as though I'll have to set up two cylinders, with the 'inner' cylinder having opposite facing normals, and switch the culling between back-face/front-face.:rolleyes:

Posted on 2001-07-29 17:15:24 by Scronty
Afternoon, Scronty:

I'm likely mistaken, sorry. But one of the files from BizareCreations was named 'objbase.def' and needed to copy it over to 'dx_objbase.def'. No problem, just curious where the changes were coming from, and if the files were different? I haven't encountered any problems.

I'm more interested in programming the pixel/vertex shaders, but it's all new to me. I've got enough reading to keep me busy for serveral years. :)
Posted on 2001-07-29 17:49:58 by bitRAKE
Afternoon, Bitrake.

I had a feeling that people would get confused because of where I put that 'winextra' folder.:grin:

The 'objbase.def' is the file in the 'winextra' folder, and 'dx_objbase.def' is in the 'directx' folder. These are the default folders from Bizzare Creations. The only difference I made was to put the 'winextra' folder inside the 'directx' folder because I was only using its' macros/etc with directx.:) I haven't modified the files themselves. As you said you've done, just change the include path to whatever folder you're using.

Posted on 2001-07-29 18:28:04 by Scronty
Yeap, that's me: 'confused' :confused:

Hehe, I didn't even see the 'dx_objbase.def' file. Thanks, it's all fixed now. :)
Posted on 2001-07-29 19:14:48 by bitRAKE

I've got a hint for you how to manage the d3dx8.lib !

While converting the d3d8-includes and -tuts I use also a tool by hutch. (you will find it in the messagebox - search for invoke and
read the entries of a new include/invoke-system by hutch)

after I have converted the whole d3dx8-includes I've been
also revealed with lots of unreferenced deklarations. but then
I used hutch's tool with the d3d8xd.lib and included the
externals into my Instead of d3dx8.lib I included then
the d3dx8d.lib (!) and it seems to work !


Posted on 2001-07-29 19:27:49 by Caleb
I'm converting: d3dx8mesh.h
Posted on 2001-07-29 20:56:11 by bitRAKE
Afternoon, Caleb.

Thanks. I'll check it out.

Afternoon, Bitrake.

Good! I'll leave that one to you, then:grin: .

Afternoon, all.

I've uploaded a fixed 'textures.asm' Tutorial. The 'shl eax, 8' in the 'D3DXCreateTextureFromFile' function should be 'shl eax, 16'.
Of course, if 'd3dx8d.lib' works, then the function will end up disappearing:) .

I've also added a couple of 'Alpha Blending' examples. Take a look if you're interested (not Bitrake, though - He isn't;) )

Win32ASM DirectX8

Posted on 2001-07-30 02:30:22 by Scronty
Afternoon, Caleb.

I tried you're idea, and it assembled fine. However, the proggy keeps asking for 'D3Dx8d.dll'!:eek: (It doesn't exist).

Have you had any luck using 'D3Dx8d.lib' with 'D3DXCreateTextureFromFileA'?:confused:

Also, is it possible for you to post your '' file in this thread?

Posted on 2001-07-30 19:26:36 by Scronty
Afternoon, all.

Yet another update to the Texture Tutorial (Here) .
'D3DXCreateTextureFromFileA' works correctly now.

I had a look at MSDN (Here) :) .

If the link doesn't work, then just go to (, then 'MSDN Home > MSDN Downloads > Graphics and Multimedia > DirectX' and look for 'DirectX 8.0: D3DX 8.0b Library of Utilities'.

This is how you get the 'd3dx8d.dll' which comes with the 'D3DX8_0b.exe' file.

I'll start changing the other proggys', now.:alright:

Posted on 2001-07-30 23:17:34 by Scronty
Hi Scronty !

I have sent you the files via mail !


Posted on 2001-07-31 01:59:15 by Caleb
Hi again !

As a real greenhorn in this comunity, I've not seen the possibility to attach files to messages posted here.

OK, here are my includes for testing ! (They based on the directx6 files of Sergey Chaban ( )

They will work only with D3DX8D.LIB and a define like

_nojmptab_ equ 1

due to unresolved externals in the D3D8X.LIB

the inline-code of D3DX8MATH is not supported except the
D3DXMatrixIdentity and the D3DXIsMatrixIdentity functions

which have to be called with a push MatrixAddress and a call instead of invoke (sorry, but i do not waste ebp-reg)

structure-elements which names are similar to existing symbols
like type, width, size, etc are declared as _<symbolname>
(unfortantely i did this in the interface too, so if a method has the
name end I wrote it '_end'. This forces the entire methodsymbol to
be <interfacename>__end (with two '_' !)

Greetings, CALEB
Posted on 2001-07-31 02:18:28 by Unregistered