Forum > Windows

Direct Draw from JEDI does not work under 64bit

(1/2) > >>

Key-Real:
Hi,
I have DirectDraw Headers from JEDI.
They work with 32bit compilation, but not with 64bit(It compiles but if run: CreateSurface fails).

I have setup a test:
http://www.sistavip.com/pub/ddrawtest.zip

Please Help

Key-Real:
If I use original Delphi Headers it works on Delphi 32&64bit.
But on FPC only 32bit, not 64bit(Same Problem as by JEDI Headers)

my Test:
http://www.sistavip.com/pub/ddraw_delphiOK.zip

engkin:
Quick test shows that your SizeOf( TDDSURFACEDESC ) is wrong. It should be 120 bytes on Win64 that is based on the one in unit p_ddraw (included with FPC).

I noticed your have:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---{$MINENUMSIZE 4}{$ALIGN ON}in your DDraw unit.

Replacing it with:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---{$PACKRECORDS c} 
AND removing "packed" from two records:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---...{$PACKRECORDS c}{engkin}{ $MINENUMSIZE 4}{engkin}{ $ALIGN ON} ...  _DDCOLORKEY = {engkin}{packed} record...  _DDSURFACEDESC = {engkin}{packed} record... 
fixes the problem.

Prabably you need to remove it from all the records.

Edit:
Attached DDraw unit.

Key-Real:
Thx to engkin :)

The JEDI ddraw works now for fpc 32 & 64 bit.
But under Delphi only 32bit.

Do I need other changes to make it works for Delphi 64?

engkin:
I don't have Delphi, so I can only suggest to use the usual $ifdef way.

Navigation

[0] Message Index

[#] Next page

Go to full version