There is a problem using the engine

  1. The button uses irregular pictures. When the mouse moves to the transparent area, the button will trigger! Normal should be the mouse in the non transparent area can trigger

  2. Edit control in Android click No Keyboard pop-up page? Mobile terminal, this is indispensable!

The button uses irregular pictures. When the mouse moves to the transparent area, the button will trigger! Normal should be the mouse in the non transparent area can trigger

The button (TCastleButton) receives clicks on all it’s area (regardless of the image being used, in particular regardless of the transparency of this image). This is actually a feature, often desirable (e.g. on mobile it is normal to have a touch area that is a bit larger than what is visible).

If you need to “filter out” the clicks on transparent areas of the button, you will have to code it yourself. You can do it – you know the position of the click (look at Container.MousePosition at the moment of click, and see where it is inside button’s RenderRect; you can then make a decision based on this, e.g. you can “look up” the image pixel underneath, by loading the image to TRGBAlphaImage and querying the RGBA color underneath by MyImage.Colors[...]).

Edit control in Android click No Keyboard pop-up page? Mobile terminal, this is indispensable

Indeed. On-screen keyboard is not working on mobile now, it is a TODO in OpenGL ES, Android and iOS TODOs · castle-engine/castle-engine Wiki · GitHub .

  1. You need to add the keyboard pop-up operation on the mobile terminal. This is a basic function. Can edit be set on the mobile terminal

  2. There are several engine examples. Under Android, FPS is very low. Now the engine does not use Vulkan engine,

I use FPC to compile pasvulkan, and keep 60fps without frame dropping under Android. I hope to refer to pasvulkan engine to change the status quo, which is a very good engine optimization

  1. As I said before, the transparent area of the special-shaped button can be clicked. Actually, I have realized this, just like what you said, but this is not only on the button, but also related to other controls. Wouldn’t it be better if this can be written into the engine for users to choose to use? Isn’t the engine more powerful?

  2. I am a loyal user of Delphi. I have been following the castle for a long time, but the support for Delphi is not coming. When can I support Delphi?

Hope to achieve the above functions to strengthen the current engine optimization and function

AD 2 - We have a number of ideas how to optimize the engine. For your own games now, follow https://castle-engine.io/manual_optimization.php . Many of the planned engine optimizations will mean that some parts of that manual page will no longer be relevant :slight_smile: But in general, you can achieve a lot of performance already by following advises on that page.

As for Vulkan: While I hope to make Vulkan renderer at some point in 2021, note that it will not make the engine magically faster. There are lots of good ideas to make the engine faster, many are renderer-agnostic, i.e. can be approached with OpenGL(ES) renderer also. Merely switching rendering backend to Vulkan does not make any software faster (and it does cost a lot of work). We will switch to Vulkan, as it offers new possibilities (for background work and for optimizations) but that is a long road before Vulkan renderer will become as feature-complete as current OpenGL(ES).

So, while I have a lot of ideas how to optimize the engine, making a Vulkan renderer is only one of them, and not really the most important.

AD 3 - As for transparent areas of the button: I don’t plan to make it at engine-level. This would be quite some complication, and I don’t see it as necessary for normal usage. As far as I see, other widgetsets, game engines etc. also don’t have it.

So for now, this is something you will have to implement yourself.

AD 4 - After 7.0 release (planned for February 2021) we want to finish Delphi support.

anticipated

For anyone who may find this thread by a web search:

  • Delphi support: Delphi is already supported, see Supported compilers and IDEs | Manual | Castle Game Engine . You can use TCastleWindow, or TCastleControl on FMX or VCL form.

  • On-screen keyboard on Android is supported. See example “examples/mobile/on_screen_keyboard/” in engine sources.