Looks like it may be something specific to your setup. In my tests I
used Lazarus 1.5 as IDE and fpc 3.0.1 on Linux. Crosscompiled example
ran on Win7 64 bit. So there are already differences with your
environment. Noting your problems with compilation, you may want to
consider using Lazarus IDE as well. You get a debugger too.
One other thing that comes to mind is to be mindful of calls like this
agg^.rectangle(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
If the default fill color is black, then the result will be a black
window, albeit not unresponsive. Again, if your program hangs for some
reason, a debugger may come in handy.
Stefan
On 06/13/2017 04:44 PM, James Richters wrote:
I've tested the example on 64 bit linux as a native application as well cross
compiled for a x86_64 windows target. Worked fine in both Wine and on a Win64
machine.
In my experience, the one dependency that AggPas has potential to fail may be
related to the freetype library. If you plan to run your app on windows only,
then you can turn freetype off and
AggPas will happily use windows font libraries. Search for the
AGG2D_USE_FREETYPE define and comment it out.
I thought I would try to compile the example for x86_64, because I would
eventually like to make my final program an x86_64 program.
When I compile it with the command:
fpc -Fu'J:\programming\fpc\3.0.2\units\$fpctarget\*' aggpas_ptcgraph_output.pas
it works fine.
When I try
fpc -Fu'J:\programming\fpc\3.0.2\units\$fpctarget\*' -Px86_64
aggpas_ptcgraph_output.pas
it compiles fine with no errors, and it executes with no errors, however I do
not get any output in either window at all, they are both just black, and
unresponsive.
I've commented out the AGG2D_USE_FREETYPE for now, because I'm not sure if the
freetype.dll I have will work on 64bit programs, and thought I would eliminate
that as a possible issue.
I am using FPC v3.0.2 on a windows 10 x64 machine
I normally use the freepascal IDE to compile my programs, so I'm not too
familiar with compiling from the command line. I'm wondering if I am doing
something wrong.
Also, is there some way to set a default for my units so I don't have to use
Fu'J:\programming\fpc\3.0.2\units\$fpctarget\*' all the time? If I don't use
that, then it can't find any units, even though it's set in the directories
with the IDE
I have some other sample programs that use ptcgraph (without AggPas) that do
not have this issue, they compile as 64bit programs and run fine. This seems
to be something with using AggPas that appears to be causing the problem. I
put in a writeln('test'); at the beginning of the program and it does do that,
and I move ptcgraph.Rectangle(10,10,100,100); to before drawstuff(agg); I will
get the rectangle on the graph screen. So I thought I would try to narrow
down what was happening by drawing different rectangles in the middle of the
code like this:
ptcgraph.Rectangle(30,30,200,200);
agg^.clearAll(0, 0, 0);
agg^.lineColor(0, 0, 0, 255);
agg^.lineWidth(3);
agg^.rectangle(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
ptcgraph.Rectangle(30,30,200,300);
agg^.lineWidth(1);
agg^.lineColor(0, 155, 0, 255);
agg^.rectangle(10, 10, 50, 50);
ptcgraph.Rectangle(30,30,300,300);
I get the first rectangle right away, the second rectangle after 6 seconds, and
the third after 6 more seconds.
I tried commenting out everything else, but I still never get the image from
putimage();
I'm very confused by this and don't have a clue what could be wrong. If I take
out the -Px86_64 in the compile command line, the program runs as expected.
Since Stefan said he compiled 64bit versions of the example program and it
worked, I wonder why I am having this issue.
James
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
--
_______________________________________________________
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal