ArthurSonzogni / smk

Licence: MIT license
SMK - Simple multimedia kit - C++ WebAssembly

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to smk

Kemal
Fast, Effective, Simple Web Framework
Stars: ✭ 3,227 (+3525.84%)
Mutual labels:  fast, simple
Wyhash
The FASTEST QUALITY hash function, random number generators (PRNG) and hash map.
Stars: ✭ 410 (+360.67%)
Mutual labels:  fast, simple
Begin Latex In Minutes
📜 Brief Intro to LaTeX for beginners that helps you use LaTeX with ease.
Stars: ✭ 3,082 (+3362.92%)
Mutual labels:  fast, simple
toro
Tree oriented routing
Stars: ✭ 116 (+30.34%)
Mutual labels:  fast, simple
Borm
【🔥今日热门】🏎️ 更好的ORM库 (Better ORM library that is simple, fast and self-mockable for Go)
Stars: ✭ 102 (+14.61%)
Mutual labels:  fast, simple
core
🌈 light, fast, and easy to use, dependencies free javascript syntax highlighter, with automatic language detection
Stars: ✭ 40 (-55.06%)
Mutual labels:  fast, simple
Maroto
A maroto way to create PDFs. Maroto is inspired in Bootstrap and uses gofpdf. Fast and simple.
Stars: ✭ 334 (+275.28%)
Mutual labels:  fast, simple
ByteCopy
Simple C99 program and API for copying files.
Stars: ✭ 16 (-82.02%)
Mutual labels:  fast, simple
Derrick
🙌 Derrick is a clean minimal and fast theme for a personal blog.
Stars: ✭ 51 (-42.7%)
Mutual labels:  fast, simple
Server Manager
This repository holds the IntISP Interface. It can be rebuilt to interface with any other hosting panel.
Stars: ✭ 31 (-65.17%)
Mutual labels:  fast, simple
contentfully
A simple but performant REST client for Contentful.
Stars: ✭ 13 (-85.39%)
Mutual labels:  fast, simple
Ataraxia
Simple and lightweight source-based multi-platform Linux distribution with musl libc.
Stars: ✭ 226 (+153.93%)
Mutual labels:  fast, simple
logquacious
Logquacious (lq) is a fast and simple log viewer.
Stars: ✭ 55 (-38.2%)
Mutual labels:  fast, simple
mocha-simple-html-reporter
Simple HTML reporter for Mocha
Stars: ✭ 16 (-82.02%)
Mutual labels:  fast, simple
node-perj
A fast, flexible JSON logger.
Stars: ✭ 16 (-82.02%)
Mutual labels:  fast, simple
Wondercms
WonderCMS - fast and small flat file CMS (5 files)
Stars: ✭ 330 (+270.79%)
Mutual labels:  fast, simple
Csfml
Official binding of SFML for C
Stars: ✭ 211 (+137.08%)
Mutual labels:  multimedia, sfml
base64.c
Base64 Library in C
Stars: ✭ 60 (-32.58%)
Mutual labels:  fast, simple
Try
Dead simple CLI tool to try Python packages - It's never been easier! 📦
Stars: ✭ 588 (+560.67%)
Mutual labels:  fast, simple
Paris
Logger in Rust for pretty colors and text in the terminal. Aiming for a relatively simple API
Stars: ✭ 162 (+82.02%)
Mutual labels:  fast, simple

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:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].