Results 1 to 10 of 33

Thread: Asphyre Sphinx 3.0.0 has been released.

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    When you talk about FireMonkey which version of Firemonkey are you refering? The old one introduced with DelphiXE2 which is compatible with FreePascal or Firemonkey 2 which will be introduced with Delphi XE3 and is no longer compatible with FreePascal?

  2. #2
    Quote Originally Posted by SilverWarior View Post
    When you talk about FireMonkey which version of Firemonkey are you refering? The old one introduced with DelphiXE2 which is compatible with FreePascal or Firemonkey 2 which will be introduced with Delphi XE3 and is no longer compatible with FreePascal?
    The problem would be maintaining FireMonkey providers for both XE2 and XE3, which will roughly result in 6 different providers. Actually, providers from Asphyre Sphinx 2 can be used with Asphyre Sphinx 3 (you just have to remove rasterizer declaration from the provider), so technically XE 2 FireMonkey support including iOS can be used here. In any case, once Delphi XE 3 is released (hopefully pretty soon), we'll have a better picture of what to support and how.

    The objective was to reduce number of providers to simplify maintenance: this is the reason why two DirectX 9 and two DirectX 10 providers were merged together, another reason was to support earlier versions of Delphi with DirectX 10+. Actually, the idea was to support DirectX 10 in FreePascal/Lazarus as well and it should technically work, except that DirectX 10 headers have some issues that I still haven't resolved.

  3. #3
    Cool! Finally one more great Pascal library got an real cross-platfom, I will definitely take a look how it works under GNU/Linux

  4. #4
    Lifepower as you say Freepascal/Lazarus you mean 32/64 Windows 32/64 Linux and MacOsX.... ?

  5. #5
    • Platforms supported: 32-bit and 64-bit Windows, 32-bit and 64-bit Linux and Mac OS X.
    Finally Linux support. I'll have to try it this evening. Thanks in advance for that!
    Best regards,
    Cybermonkey

  6. #6
    Quote Originally Posted by azrael11 View Post
    Lifepower as you say Freepascal/Lazarus you mean 32/64 Windows 32/64 Linux and MacOsX.... ?
    Yes. Examples on Windows have been precompiled in 32-bit, but on Linux they have been precompiled in 64-bit.

    Linux support relies on TOpenGLControl from Lazarus components for creating GLX context. This means that multisampling settings don't work there yet and there could be some key weirdness when using GUI interfaces. The problem was that I couldn't find a way to extract X-window ID from Lazarus window handle to use proper GLX device. If someone knows how to do that, I can implement direct OpenGL context creation in native fashion.

  7. #7
    The problem was that I couldn't find a way to extract X-window ID from Lazarus window handle to use proper GLX device. If someone knows how to do that, I can implement direct OpenGL context creation in native fashion.
    For ZenGL I use this solution(but works only with GTK version of LCL, I didn't try to use Qt version of Lazarus, so ):
    Code:
    uses
      {$IFDEF LINUX}
      {$IFDEF LCLGTK}
      GLib, GTK, GDK,
      {$ENDIF}
      {$IFDEF LCLGTK2}
      GLib2, GTK2, GDK2, GDK2x,
      {$ENDIF}
      {$ENDIF}
    
    // ..
    
    {$IFDEF LINUX}
    var
      widget : PGtkWidget;
      socket : PGtkWidget;
      glist : PGlist;
    {$ENDIF}
    begin
      {$IFDEF LINUX}
      glist := gtk_container_children( GTK_CONTAINER( PGtkWidget( Panel1.Handle ) ) );
      widget := PGtkWidget( glist.data );
      socket := gtk_socket_new();
      gtk_container_add( GTK_CONTAINER( widget ), socket );
    
      gtk_widget_show( socket );
      gtk_widget_show( widget );
    
      gtk_widget_realize( socket );
      {$IFDEF LCLGTK}
      YourTWindow := PGdkWindowPrivate( widget.window ).xwindow;
      {$ENDIF}
      {$IFDEF LCLGTK2}
      YourTWindow := GDK_WINDOW_XID( widget.window );
      {$ENDIF}
      {$ENDIF}
    Last edited by Andru; 29-08-2012 at 02:55 PM.

  8. #8
    Andru, thanks a lot for this! I'm going to try using it.

  9. #9
    Quote Originally Posted by Lifepower View Post
    Yes. Examples on Windows have been precompiled in 32-bit, but on Linux they have been precompiled in 64-bit.

    Linux support relies on TOpenGLControl from Lazarus components for creating GLX context. This means that multisampling settings don't work there yet and there could be some key weirdness when using GUI interfaces. The problem was that I couldn't find a way to extract X-window ID from Lazarus window handle to use proper GLX device. If someone knows how to do that, I can implement direct OpenGL context creation in native fashion.
    Lifepower the windows isn't compiling with 32 bit ... the builds is 64 bit...

  10. #10
    Quote Originally Posted by azrael11 View Post
    Lifepower the windows isn't compiling with 32 bit ... the builds is 64 bit...
    You are right, sorry. There are 5 different example sets, 3 for Lazarus on all three platforms and 2 for Delphi. Delphi executables are 32-bit, Lazarus executables are 64-bit except those on Mac OS X. I've updated examples to use relative paths in the trunk, along with some other features. An update will be released soon.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •