[Solved]Bug in the example?

General help with the eC language.
samsam598
Posts: 212
Joined: Thu Apr 14, 2011 9:44 pm

[Solved]Bug in the example?

Post by samsam598 »

Greetings!

Below example is from wiki http://www.ecere.com/wiki/index.php?title=Utilities

Linked List Example

Code: Select all

import "ecere"

class MyItem : struct
{
   MyItem prev, next;
   int value;
}

void Test()
{
   MyItem i;
   List list { };
   list.Add(MyItem { value = 5 });
   for(i = list.first; i; i = i.next)
      printf("%d\n", i.value);
   list.Free(null);
}
class MyApp:Application
{
   void Main()
   {  
     
      Test();
      system("pause");
   }
}    

But I got below compile message:

Compiling...
bug01.ec
bug01.ec:14:13: warning: incompatible expression MyItem { value = 5 } (MyItem); expected LLT
bug01.ec:15:12: warning: incompatible expression list.first (ecere::com::Link); expected MyItem
bug01.c
bug01.ec:17: error: too many arguments to function '(void (*)(struct __ecereNameSpace__ecere__com__Instance *))*(list->_vTbl + (unsigned int)((unsigned int)__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free * 4u))'

bug01.exe (Debug) - 1 error, 2 warnings


What's wrong here?Is the example wrong or there is some bug in the ec language?If the example is wrong,how to fix it then?

If this is a ec issue,I think maybe the most important is to fix the bugs in the language before any new features supposed to add in in the furture.

Thanks and best regards,
Sam
Last edited by samsam598 on Tue Aug 23, 2011 8:27 pm, edited 1 time in total.
jerome
Site Admin
Posts: 608
Joined: Sat Jan 16, 2010 11:16 pm

Re: Bug in the example?

Post by jerome »

Hi Sam!

The wiki is not in the best shape right now, there's not much valuable info there.

You are better off looking in the sdk/samples/ folder, and grabbing the latest from a git snapshot (http://github.com/ecere/sdk)

What is happening with this sample is that it is still using the 'old' containers.
That old 'List' container has been renamed to 'OldList' (It will work if you just change List to OldList) and is deprecated (it will be taken out in the future). We have a whole new set of containers which work with eC templates and are much nicer. Here is how we would write this sample now:

Code: Select all

import "ecere"
 
void Test()
{
   List<int> list { [ 5 ] };
 
   for(i : list)
      PrintLn(i);
 
   delete list;
}
 
class MyApp : Application
{
   void Main()
   {  
      Test();
      system("pause");
   }
}
Note: there ARE bugs in the eC compiler, IDE and the rest of the SDK, and we do focus on fixing those first. If we do add new functionality, it is because we have an immediate requirement for it.
I hope this helps! And don't hesitate to ask for help over here, we'll be happy to guide you!

All the best,

Jerome
samsam598
Posts: 212
Joined: Thu Apr 14, 2011 9:44 pm

Re: Bug in the example?

Post by samsam598 »

Hi Joreme,

Thanks for your prompt response,appreciated.

Another issue that I encountered is the ide will crash when I try to assign hot key to a button using the designer.Drag and place a button on a form,rename the button text to "OK",select 'hotkey',then pull down the arrow of the 'code' and select 'O',crash~.The IDE version is windows binary from
http://www.ecere.com/forums/viewtopic.php?f=1&t=107.

For the lastest snapshot from (http://github.com/ecere/sdk),I will try.Before that,would like to know also is there an windows binary package available as well?If not,could you please help to figure out how to compile this SDK by myself under Windows 7,without system administrator authorization,that's,I can't add compiler and sdk path to the system environment under windows.Can I make use of the existing IDE?And by the way,which version of mingw suits best?A link would be perfect.

Thanks for your help in advance.
Regards,
Sam
jerome
Site Admin
Posts: 608
Joined: Sat Jan 16, 2010 11:16 pm

Re: Bug in the example?

Post by jerome »

Hi Sam.

Thanks for reporting that bug. I don't think we were aware of that. I'll work on a fix right now, I should have it ready in a couple of hours. Then I'll package new binaries for you.

At the moment I'm using a blend of MinGW packages, GCC is 4.4.0.
I'll post you links later.

To build the SDK on Windows 7, it's just a matter of running mingw32-make.exe (MinGW make package) from the root of the Ecere SDK folder from git (Where 'Makefile' is)
'mingw32-make -j 4' if you have a quad-core system will greatly speed up the process (The 2nd stage compilation takes a while)

Then if you do not have access to an elevated command prompt (One that says 'Administrator' at the top) you just manually copy the contents of [Ecere SDK folder]/obj/win32 (bin and lib folders) onto wherever it is you installed your Ecere SDK.

I'll follow up shortly.

Thanks,

Jerome
samsam598
Posts: 212
Joined: Thu Apr 14, 2011 9:44 pm

Re: Bug in the example?

Post by samsam598 »

Hi Jerome,

Thanks...

What will I get if I open successfully and build the git snapshot/ide/ide.epj by the current ecere IDE?Unfortunately the IDE crashed if I tried to open any of the *.epj inside the git snapshot package by the current IDE .This information is just for your reference.

Thanks and regards,
Sam
jerome
Site Admin
Posts: 608
Joined: Sat Jan 16, 2010 11:16 pm

Re: Bug in the example?

Post by jerome »

Hi Sam,

To build the latest IDE, you should have the latest ecere.dll in place.
(You can build it from the ecere.epj )

But really for the first build you should build everything from a 'make' at the top level of the SDK, to make sure everything is compatible, and then put these binaries in place. Then you can open the EPJ files from the IDE and build each project individually. All the output files will go into obj/win32/

You said you were using the binaries from http://ecere.com/forums/viewtopic.php?f=1&t=107&start=0
Those should be able to open the JSON project files (The new format of EPJ for the upcoming 0.44 release...)
The previous IDE (The binaries from the Windows logo on the home page) however should crash trying to open these new EPJ files.
samsam598
Posts: 212
Joined: Thu Apr 14, 2011 9:44 pm

Re: Bug in the example?

Post by samsam598 »

Hi Jerome,

Thanks.

Same as last time I mentioned in gmail,when I built ecere sdk from the snapshot,I encountered the same issue regarding opengl issue.

Code: Select all

C:\person\ecere\ecereSnapshot>set PATH=c:\person\codelite\gcc\bin;c:\person\code
lite\gcc\lib;c:\person\codelite\gcc\include;C:\OraHome1\bin;C:\Program Files\Ora
cle\jre\1.1.7\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Win
dows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Application Vir
tualization Client;C:\Program Files\NetManage\RUMBA\System;C:\Program Files\NetM
anage\RUMBA\;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Intel\DMIX;F:
\Apps\INFORMX\Bin;

C:\person\ecere\ecereSnapshot>mingw32-make
Bootstrapping eC compiling tools...
Building ecere...
Building ec...
Building ecp...
Building ecc...
Building ecs...
All done!
Building dependencies...
Building FreeType...
Building libjpeg...
Building libpng...
Building libungif...
Building zlib...
Building 2nd stage ecere...
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:852:1
3: warning: incompatible expression ecere::gfx::drivers::glBlendFuncSeparate (PF
NGLBLENDFUNCSEPARATEPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:853:1
3: error: called object glBlendFuncSeparate is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:853:1
3: error: couldn't determine type of ecere::gfx::drivers::glBlendFuncSeparate(0x
0302, 0x0303, 0x1, 0x0303)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2473:
10: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2474:
10: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2474:
10: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, 0)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2558:
16: error: called object glDeleteBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2558:
16: error: couldn't determine type of ecere::gfx::drivers::glDeleteBuffersARB(1,
 &oglMesh.vertices)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2567:
16: error: called object glDeleteBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2567:
16: error: couldn't determine type of ecere::gfx::drivers::glDeleteBuffersARB(1,
 &oglMesh.normals)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2576:
16: error: called object glDeleteBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2576:
16: error: couldn't determine type of ecere::gfx::drivers::glDeleteBuffersARB(1,
 &oglMesh.texCoords)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2585:
16: error: called object glDeleteBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2585:
16: error: couldn't determine type of ecere::gfx::drivers::glDeleteBuffersARB(1,
 &oglMesh.texCoords2)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2596:
16: error: called object glDeleteBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2596:
16: error: couldn't determine type of ecere::gfx::drivers::glDeleteBuffersARB(1,
 &oglMesh.colors)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2621:
16: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2622:
16: error: called object glGenBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2622:
16: error: couldn't determine type of ecere::gfx::drivers::glGenBuffersARB(1, &o
glMesh.vertices)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2626:
16: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2627:
16: error: called object glGenBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2627:
16: error: couldn't determine type of ecere::gfx::drivers::glGenBuffersARB(1, &o
glMesh.normals)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2632:
16: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2633:
16: error: called object glGenBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2633:
16: error: couldn't determine type of ecere::gfx::drivers::glGenBuffersARB(1, &o
glMesh.texCoords)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2638:
16: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2639:
16: error: called object glGenBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2639:
16: error: couldn't determine type of ecere::gfx::drivers::glGenBuffersARB(1, &o
glMesh.colors)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2652:
10: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2656:
13: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2656:
13: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.vertices)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2657:
13: error: called object glBufferDataARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2657:
13: error: couldn't determine type of ecere::gfx::drivers::glBufferDataARB(0x889
2, mesh.nVertices * (mesh.flags.doubleVertices ? sizeof(ecere::gfx3D::Vector3D)
: sizeof(ecere::gfx3D::Vector3Df)), mesh.vertices, 0x88E4)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2662:
13: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2662:
13: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.normals)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2663:
13: error: called object glBufferDataARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2663:
13: error: couldn't determine type of ecere::gfx::drivers::glBufferDataARB(0x889
2, mesh.nVertices * (mesh.flags.doubleNormals ? sizeof(ecere::gfx3D::Vector3D) :
 sizeof(ecere::gfx3D::Vector3Df)), mesh.normals, 0x88E4)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2668:
13: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2668:
13: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.texCoords)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2669:
13: error: called object glBufferDataARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2669:
13: error: couldn't determine type of ecere::gfx::drivers::glBufferDataARB(0x889
2, mesh.nVertices * sizeof(ecere::sys::Pointf), mesh.texCoords, 0x88E4)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2674:
13: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2674:
13: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.colors)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2675:
13: error: called object glBufferDataARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2675:
13: error: couldn't determine type of ecere::gfx::drivers::glBufferDataARB(0x889
2, mesh.nVertices * sizeof(ecere::gfx::ColorRGBAf), mesh.colors, 0x88E4)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2678:
10: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2678:
10: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, 0)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2694:
13: error: called object glDeleteBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2694:
13: error: couldn't determine type of ecere::gfx::drivers::glDeleteBuffersARB(1,
 &oglIndices.buffer)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2706:
13: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2707:
13: error: called object glGenBuffersARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2707:
13: error: couldn't determine type of ecere::gfx::drivers::glGenBuffersARB(1, &o
glIndices.buffer)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2715:
10: warning: incompatible expression ecere::gfx::drivers::glGenBuffersARB (PFNGL
GENBUFFERSARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2717:
10: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2717:
10: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
3, oglIndices.buffer)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2718:
10: error: called object glBufferDataARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2718:
10: error: couldn't determine type of ecere::gfx::drivers::glBufferDataARB(0x889
3, nIndices * (indices32bit ? sizeof(uint32) : sizeof(uint16)), oglIndices.indic
es, 0x88E4)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2720:
10: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2720:
10: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
3, 0)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2746:
16: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2747:
16: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2747:
16: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.vertices)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2748:
80: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2754:
19: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2755:
19: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2755:
19: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.normals)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2756:
79: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2765:
19: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2766:
19: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2766:
19: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.texCoords)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2767:
48: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2776:
19: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2777:
19: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2777:
19: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, oglMesh.colors)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2778:
45: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2786:
16: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2787:
16: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2787:
16: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, 0)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2814:
15: warning: incompatible expression ecere::gfx::drivers::glBindBufferARB (PFNGL
BINDBUFFERARBPROC); expected bool
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2815:
10: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2815:
10: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
2, 0)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2854:
16: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2854:
16: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
3, oglIndices.buffer)
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2857:
16: error: called object glBindBufferARB is not a function
C:\person\ecere\ecereSnapshot\ecere\src\gfx\drivers\OpenGLDisplayDriver.ec:2857:
16: error: couldn't determine type of ecere::gfx::drivers::glBindBufferARB(0x889
3, 0)
mingw32-make[1]: *** [obj/release.win32/OpenGLDisplayDriver.c] Error 1
mingw32-make: *** [ecere] Error 2
I will give up at this moment and await your updated binary package.
jerome
Site Admin
Posts: 608
Joined: Sat Jan 16, 2010 11:16 pm

Re: Bug in the example?

Post by jerome »

Hi Sam,

I've attached to this post my version of glext.h , this might help for the build?
It goes into C:\Program Files (x86)\ECERE SDK\mingw\include\GL
That is the one I had included in the old full installer which includes MinGW with GCC 4.3 alpha.

Please find here my current binaries.
You should be able to just drop them in place to replace your current binaries.

You'll notice a new dark color scheme and native window decorations (You can always revert that to the previous look with a few tweaks in the IDE's source code, at the top of CodeEditor.ec. Let me know if you're having trouble doing so)

I have worked a fix for that hotKey crash, it turned out to be a pretty deep problem which is now solved. Thanks again! I haven't done extensive testing yet so it might break something else, please let me know if you see anything wrong.

Please let me know how these new binaries work for you, and if you have any problem with them.

About MinGW, here are the versions I have installed right now:

gcc (GCC) 4.4.0
GNU ld (GNU Binutils) 2.21
GNU Make 3.81
GNU gdb 6.8
mingwrt-3.18
w32api-3.17-2

You can find most of these from within:

http://sourceforge.net/projects/mingw/f ... aseSystem/

For a few packages you'll have to go up to http://sourceforge.net/projects/mingw/files/MinGW/
(e.g. make, and I think with GCC 4.4 you might need those extra libraries like gmp, intl, iconv, mpfr... not sure if I'm missing any)

Once we have an IDE a bit more stable, we plan to a new installer with an updated MinGW again.
(I realize our current installer can't even open the new project files, it's quite obsolete! :( )

That's what the 0.44 release and the upcoming 0.44pre2 is all about.

All the best,

Jerome
Attachments
glext.h
(363.94 KiB) Downloaded 2094 times
samsam598
Posts: 212
Joined: Thu Apr 14, 2011 9:44 pm

Re: Bug in the example?

Post by samsam598 »

Hi Jerome,

Thanks for your great help!
Pity I still can not build SDK with your gl header,same error;nor can I revert the IDE to previous color scheme.

Seeking your help on the second issue since I have updated IDE so I think we can get back the first issue some time later.

Thanks and regards,
Sam
jerome
Site Admin
Posts: 608
Joined: Sat Jan 16, 2010 11:16 pm

Re: Bug in the example?

Post by jerome »

About your ecere build errors, You are really not picking up the glext.h header I posted.
In your path the only potential path towards GCC is this CodeLite. Did you put glext.h inside that include\GL\ folder ?

By the second issue, I assume you mean you want to revert the color scheme?
Where are you building the IDE from? If you open up sdk/ide/ide.epj in the IDE, under src/designer you will find CodeEditor.ec.

At the top of that file you will see a block of commented code. Simply uncomment that code, and comment the following block. It should then look like this:

Code: Select all

import "ide"
 
// *** Color Schemes ***
 
// *** The Old Color Scheme that was causing me auras and ophtalmic migraines -- Uncomment at your own risk! ***
 
FontResource panelFont { "Courier New", 10 };
FontResource codeFont { "Courier New", 10 };
Color selectionColor = Color { 10, 36, 106 };
Color selectionText = white;
Color viewsBackground = white;
Color viewsText = black;
Color outputBackground = white;
Color outputText = black;
Color projectViewBackground = white;
Color projectViewText = black;
Color codeEditorBG = white;
Color codeEditorFG = black;
Color marginColor = Color {230, 230, 230};
Color selectedMarginColor = Color {200, 200, 200};
Color lineNumbersColor = Color {60, 60, 60};
SyntaxColorScheme colorScheme
{
   keywordColors = [ blue, blue ];
   commentColor = dimGray;
   charLiteralColor = crimson;
   stringLiteralColor = crimson;
   preprocessorColor = green;
   numberColor = teal;
};
 
 
// The new nice dark scheme -- so peaceful on my brain
/*
FontResource panelFont { "Courier New", 10 };
FontResource codeFont { "Courier New", 10 };
*/
/*FontResource panelFont { "Consolas", 10.5f };
FontResource codeFont { "Consolas", 10.5f };
 
Color selectionColor = lightYellow;
Color selectionText = Color { 30, 40, 50 };
Color viewsBackground = Color { 30, 40, 50 };
Color viewsText = lightGray;
Color outputBackground = black;
Color outputText = lime;
Color projectViewBackground = Color { 30, 40, 50 };
Color projectViewText = lightGray;
Color codeEditorBG = black;
Color codeEditorFG = ivory;
Color marginColor = Color {24, 24, 24};
Color selectedMarginColor = Color {64, 64, 64};
Color lineNumbersColor = Color {160, 160, 160};
SyntaxColorScheme colorScheme
{
   keywordColors = [ skyBlue, skyBlue ];
   commentColor = Color { 125, 125, 125 };
   charLiteralColor = Color { 245, 50, 245 };
   stringLiteralColor = Color { 245, 50, 245 };
   preprocessorColor = { 120, 220, 140 };
   numberColor = Color {   0, 192, 192 };
};*/
Regards,

Jerome
Post Reply