Nothing Special   »   [go: up one dir, main page]

Skip to content
/ smk Public
forked from ArthurSonzogni/smk

SMK - Simple multimedia kit - C++ WebAssembly

License

Notifications You must be signed in to change notification settings

JiangKevin/smk

 
 

Repository files navigation

SMK (Simple multimedia kit)

travis issues license contributors

header

Features:

  • Compatible with WebAssembly. One build for every platforms!
  • Fast & simple.
  • No dependencies: everything is fetched using cmake FetchContent.

Ready to start?

Open a new Window:

  auto window = smk::Window(640, 480, "Title");

The main loop:

  window.ExecuteMainLoop([&] {
    window.Clear(smk::Color::Black);

    [...] // Draw stuff

    window.Display();
  });

Images

Load textures:

  auto ball_texture = smk::Texture("./ball.png");

Display images:

  auto ball_sprite = smk::Sprite(ball_texture);
  ball_sprite.SetPosition({200,200});
  window.Draw(ball_sprite);

Text

Load font:

  auto font_arial = smk::Font("./arial.ttf", 32);

Display text:

  auto text = smk::Text(font_arial, "hello world");
  text.SetPosition({200,200});
  window.Draw(text);

Sound

Load sound:

  auto sound_buffer = smk:SoundBuffer("./boing.ogg");

Play sound:

  auto sound = smk::Sound(sound_buffer);
  sound.Play();

Transform the view

  auto view = smk::View();
  view.SetCenter({200, 200});
  view.SetSize(320,240);
  window.SetView(view);

Library made using SMK

  • smkflow => A node editor library.

Games made using SMK

Please add yours.

Story

I needed to port several games made using the SFML to WebAssembly. SFML isn't supporting WebAssembly (yet), so I had to reimplement it myself. If you know the SFML, then SMK must be very familiar to you.

Minimal packages to install for building/executing:

They should already be installed. If they aren't you need to execute:

sudo apt install xorg-dev libgl1-mesa-dev libpulse-dev

Thanks

SMK depends directly on many great projects listed below:

SMK is also made possible thanks to:

About

SMK - Simple multimedia kit - C++ WebAssembly

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.4%
  • CMake 2.8%
  • HTML 1.1%
  • Other 0.7%