Menu

Installing GLScene Version 6416

Help
2014-09-17
2014-09-19
  • Eric Hardinge

    Eric Hardinge - 2014-09-17

    With Version 6461 downloaded with TortoiseSVN, when I now try to compile a GLScene application using Delphi XE Starter I get
    the error [DCC Error] GLCrossPlatform.pas(269): E2003 Undeclared identifier: 'sAllFilter'
    The code section from GLCrossPlatform.pas(269) is...

    // Several define from unit Consts
    const
    {$IFDEF FPC}
    glsAllFilter: string = 'All';
    {$ELSE}
    glsAllFilter: string = sAllFilter;
    {$ENDIF}

    When I search the GLScene files for 'sAllFilter' the only other reference I find is...

      <li>13/07/09 - DanB - replaced sAllFilter with glsAllFilter (for FPC)
      Found in unit GLSoundFileObjects;
    

    After removing all the Glscene packages I tried to reinstall 'package GLScene_DesignTime' and the same error occurred.

    So what is happening here ?
    I would really like to be able to uses the GLScene library as soon as possible. Could you please help.

    Eric Hardinge

     
  • nelsonchu

    nelsonchu - 2014-09-17

    Sorry, it was due to the last change in r6461 (removal of 'Consts' in GLCrossPlatform.pas).

    In GLCrossPlatform.pas, line 98, please change to:

    {$IFDEF GLS_DELPHI_XE2_UP}
    System.Classes, System.SysUtils, System.StrUtils,
    VCL.Consts, VCL.Graphics,
    VCL.Controls, VCL.Forms, VCL.Dialogs
    {$ELSE}
    {$IFNDEF FPC}
    Consts,
    {$ENDIF}
    Classes, SysUtils, StrUtils, Graphics, Controls,
    Forms, Dialogs
    {$ENDIF}

    FPC doesn't seem to have the 'Consts' unit and it was keeping GLScene from compiling in Lazarus. But Delphi needs that 'Consts' reference.

     
  • Pavel Vassiliev

    Pavel Vassiliev - 2014-09-17

    Ok, added.

     
  • Eric Hardinge

    Eric Hardinge - 2014-09-17

    Thank you for your prompt response.

    But I now have a number of other problems.
    1. [DCC Error] GLWin32Viewer.pas(439): E2003 Undeclared identifier: 'TOUCH_COORD_TO_PIXEL'
    It seems that Delphi XE starter does not have this identifier, but no problem I don't need it.
    I found a reference to 'TOUCH_COORD_TO_PIXEL'
    at 'msdn.microsoft.com/en-us/library/windows/.../dd744778(v=vs.85).aspx'

    If I comment out the reference to TOUCH lines it seems to work.
    Do I need it? If so is there a way to download whatever I need?

    1. [DCC Error] GLTypes.pas(117): E1030 Invalid compiler directive: 'HPPEMIT'

    The code section is...

    //-----------------------
    // Matrix types
    //-----------------------
    TGLMatrix2DType = array[0..3] of TGLVector2D;
    {$NODEFINE TGLMatrix2DType}
    ($HPPEMIT END OPENNAMESPACE)
    ($HPPEMIT END 'typedef TGLVector2D TGLMatrix2DArray[4];')
    ($HPPEMIT END CLOSENAMESPACE)
    TGLMatrix3DType = array[0..3] of TGLVector3D;
    {$NODEFINE TGLMatrix3DType}
    ($HPPEMIT END OPENNAMESPACE)
    ($HPPEMIT END 'typedef TGLVector3D TGLMatrix3DType[4];')
    ($HPPEMIT END CLOSENAMESPACE)

    This I do not understand??
    

    Are these commented out? I thought that '($HPPEMIT END OPENNAMESPACE)' indicated that it is a comment?
    The Delphi help only gives
    'The $HPPEMIT directive can only appear after the unit header.'
    and
    'The HPPEMIT directive adds a specified symbol to the header file generated for C++. For example: {$HPPEMIT 'typedef double Weight' }.
    HPPEMIT directives are output into the "user supplied" section at the top of the header file in the order in which they appear in the Delphi file.

    The HPPEMIT directive accepts an optional END directive that instructs the compiler to emit the string at the bottom of the .hpp file. Otherwise, the string is emitted at the top of the file.

    Example:

    {$HPPEMIT 'Symbol goes to top of file'}
    {$HPPEMIT END 'Symbol goes to bottom of file'}'
    which is no help to me.

    If I change the above code to ...

    //-----------------------
    // Matrix types
    //-----------------------
    TGLMatrix2DType = array[0..3] of TGLVector2D;
    // {$NODEFINE TGLMatrix2DType}
    // ($HPPEMIT END OPENNAMESPACE)
    // ($HPPEMIT END 'typedef TGLVector2D TGLMatrix2DArray[4];')
    // ($HPPEMIT END CLOSENAMESPACE)
    TGLMatrix3DType = array[0..3] of TGLVector3D;
    // {$NODEFINE TGLMatrix3DType}
    // ($HPPEMIT END OPENNAMESPACE)
    // ($HPPEMIT END 'typedef TGLVector3D TGLMatrix3DType[4];')
    // ($HPPEMIT END CLOSENAMESPACE)
    It works but now I get this error
    3.[DCC Fatal Error] GLSceneEdit.pas(80): F1026 File not found: 'Actions.dcu'
    At this point I will wait for your response.
    I really appreciate your help and am amazed by the breadth of knowledge of the administrators.

    Eric Hardinge.

    P.S. the asterisk is removed from the code by the formatting

     

    Last edit: Eric Hardinge 2014-09-17
    • nelsonchu

      nelsonchu - 2014-09-19

      After the line:

      procedure TGLSceneViewer.WMTouch(var Message: TMessage);

      Adding:

      function TOUCH_COORD_TO_PIXEL(l : integer) : integer; // Delphi XE needs this
      begin
      result := l div 100;
      end;

      would solve the XE without TOUCH_COORD_TO_PIXEL problem.

       
  • Pavel Vassiliev

    Pavel Vassiliev - 2014-09-18

    Hm, remove GLTypes from your GLScene runtime.dpk if you use XE studio and also? please, try to use current 6462 version

     

    Last edit: Pavel Vassiliev 2014-09-18
  • Eric Hardinge

    Eric Hardinge - 2014-09-19

    I was using version 6461 not 6416 as indicated in the first Post' title.
    I was using version 6462 for the second post.
    Now I am using version 6463 starting with an entirely fresh download.
    GLTypes only occurs in GLScene_RunTime.dpk for
    DelphiXE3 DelphiXE4 DelphiXE5 DelphiXE6 & DelphiXE7
    I am using DelphiXE There is no reference to GLTypes

    GLWin32Viewer
    Error 1 [DCC Error] GLWin32Viewer.pas(439): E2003 Undeclared identifier: 'TOUCH_COORD_TO_PIXEL'
    GLTypes
    Error 2 [DCC Error] GLTypes.pas(117): E1030 Invalid compiler directive: 'HPPEMIT'
    GLSceneEdit.pas
    Error 3 [DCC Fatal Error] GLSceneEdit.pas(80): F1026 File not found: 'Actions.dcu'
    GLScene_DesignTime
    Error 4 [DCC Error] GLScene_DesignTime.dpk(40): E2199 Packages 'vclimg' and 'GLScene_RunTime' both contain unit 'jpeg'

    GLScene_RunTime.dcp and GLScene_DesignTime.dcp installed OK after commenting out the sections mentioned before.

    Package C:\GLScene\DelphiXE\GLCg_RunTime.dpk;
    Contains {$R '..\Source\CgShaders\GLSceneVCLCg.dcr'}
    Should be {$R '..\Source\GLSceneVCLCg.dcr'}

    Error 5[DCC Error] GLCg_DesignTime.dpk(33): E2199 Packages 'GLScene_RunTime' and 'xmlrtl' both contain unit 'XMLDoc'

    Package C:\GLScene\DelphiXE\GLSS_FMOD.dpk;
    Contains {$R '..\Source\SoundAPIs\GLSceneVCLFMod.dcr'}
    Should be {$R '..\Source\GLSceneVCLFMod.dcr'}

    So you see I'm stuck.

    Is there anything you could advise to help.
    Eric Hardinge.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.