Giter Site home page Giter Site logo

stigmee / gdnative-cef Goto Github PK

View Code? Open in Web Editor NEW
37.0 6.0 4.0 643 KB

Chromium Embedded Framework as Godot GDNative

License: GNU General Public License v3.0

Python 25.07% C++ 73.52% GDScript 1.41%
cef chromium-embedded-framework gdnative gdnative-plugin godot-engine godot3 stigmee godot

gdnative-cef's Introduction

Stigmee

This repo contains all the Godot script code making possible the Stigmee application. It uses other repos inside the Stigmee workspace, compiled as libraries to be used as gdnative code:

The Stigmee project is compiled by the following repo:

The Stigmee binary, assets and artifacts are compiled inside the created build/ folder.

Camera Bindings

  • W or UP: forward translation the camera.
  • S or DOWN: backward translation the camera.
  • D or RIGHT: right translation the camera.
  • A or LEFT: left translation the camera.
  • R: zoom in.
  • F: zoom out.
  • O: camera CCW rotation.
  • I: camera CW rotation.
  • left mouse button pressed: camera translation.
  • middle mouse button pressed: camera rotation.
  • mouse scroll: zoom (not fonctional).
  • double left button click on the moving cube: track the cube.
  • SHIFT: allows to increase the camera displacement.
  • ESCAPE: stop tracking the cube.

gdnative-cef's People

Contributors

lecrapouille avatar steacktartar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gdnative-cef's Issues

cefstop

is this the good code to call ?

Optimize OnPaint

On

void GDCef::RenderHandler::OnPaint(CefRefPtr<CefBrowser> browser, PaintElementType type,
                                   const RectList& dirtyRects, const void* buffer,
                                   int width, int height)

Converting buffer (CEF texture) to m_texture (Godot texture) implies multiple iteration on the whole texture before beeing stored.
Think how to optimize

Manage keys by layers

For example typing in a pop up also sends actions to the island (turn, regenerate ...)

MacOS X manage universal

elif env['platform'] == 'osx':
    # Use Clang on macOS by default
    env['CXX'] = 'clang++'

    if env["macos_arch"] == "universal":
        env.Append(LINKFLAGS=["-arch", "x86_64", "-arch", "arm64"])
        env.Append(CCFLAGS=["-arch", "x86_64", "-arch", "arm64"])
    else:
        env.Append(LINKFLAGS=["-arch", env["macos_arch"]])
        env.Append(CCFLAGS=["-arch", env["macos_arch"]])

Instructions for installation

Hello!

I'd be good if you write a simple installation steps as where specifically to include the files... i know that it should go into "modules" folder, but as of the file structure here i am not sure anymore as to what goes where..

@Lecrapouille

Compute SHA1 of CEF assets

build.sh compute SHA1 of CEF assets and generate c++ file for a std::map<sha1, file> as expected hashes
then iterate on each CEF asset and compute the SHA1 compare it with expected hashes

Manage symlink inside the Godot link

Kind of std::filesystem::cannonical((std::filesystem::current_path() / argv[0]).get_parent() / SUBPROCESS_NAME)
to avoid
cd $WORKSPACE_STIGMEE; ./stigmee-release where stigmee-release is an alias to $WORKSPACE_STIGMEE/stigmee/build/Stigmee.x11.release. Currently, it will look at assets at $WORKSPACE_STIGMEE instead of $WORKSPACE_STIGMEE/stigmee/build

OnPaint use const RectList& dirtyRects

void GDCef::RenderHandler::OnPaint(CefRefPtr<CefBrowser> browser, PaintElementType type,
                                   const RectList& dirtyRects, const void* buffer,
                                   int width, int height)

Manage dirtyRects and can we use poolthreads to parallelize ?

doMessageLoopWork

Run it inside a std::thread to avoid to call it periodically inside the Godot script

homepage

Implement a stigmee://toto.html

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.