Skip to content

Instantly share code, notes, and snippets.

View adamjs's full-sized avatar
🤠
Wranglin' code

Adam Simmons adamjs

🤠
Wranglin' code
View GitHub Profile
@adamjs
adamjs / gl_texture_surface.cc
Created March 11, 2013 10:39
This Surface (and corresponding SurfaceFactory) implementation demonstrates how to blit Awesomium paint events directly to an OpenGL texture.
#include "gl_texture_surface.h"
#include <iostream>
GLRAMTextureSurface::GLRAMTextureSurface(int width, int height) : texture_id_(0),
buffer_(0), bpp_(4), rowspan_(0), width_(width), height_(height) {
rowspan_ = width_ * bpp_;
buffer_ = new unsigned char[rowspan_ * height_];
needs_update_ = false;
glGenTextures(1, &texture_id_);
@adamjs
adamjs / gist:5932868
Created July 5, 2013 08:12
crude demonstration of how to handle SDL_TEXTINPUT (SDL 2.0) with Awesomium's WebKeyboardEvent API
void handleTextInputEvent(const SDL_Event& event) {
Awesomium::WebKeyboardEvent keyEvent;
keyEvent.type = Awesomium::WebKeyboardEvent::kTypeChar;
// WebKit's WebKeyboardEvent only supports up to 4 chars per "text" event
// but SDL supports up to 32 chars. If we really wanted to do this right,
// we'd probably need to inject several events for text > 4 chars.
// Let's just trim it down to 4 for now.
for (int i = 0; i < 4; i++) {
keyEvent.text[i] = (wchar16)event.text.text[i];
@adamjs
adamjs / gl_texture_surface.cc
Created September 7, 2013 02:02
Implementation of OpenGL Texture Surface (used with SDL-based WebFlow sample in the Awesomium SDK)
#include "gl_texture_surface.h"
#include <iostream>
#include <cstring>
#include <cstdlib>
GLRAMTextureSurface::GLRAMTextureSurface(int width, int height) : texture_id_(0),
buffer_(0), bpp_(4), rowspan_(0), width_(width), height_(height) {
rowspan_ = width_ * bpp_;
buffer_ = new unsigned char[rowspan_ * height_];
needs_update_ = false;

hello

#include "gl_texture_surface.h"
#include <iostream>
#include <cstring>
#include <cstdlib>
GLRAMTextureSurface::GLRAMTextureSurface(int width, int height) : texture_id_(0),
buffer_(0), bpp_(4), rowspan_(0), width_(width), height_(height) {
rowspan_ = width_ * bpp_;
buffer_ = new unsigned char[rowspan_ * height_];
needs_update_ = false;
@adamjs
adamjs / CAPI.h
Created February 1, 2019 22:13
Draft C API for Ultralight
#ifndef ULTRALIGHT_CAPI_H
#define ULTRALIGHT_CAPI_H
#ifndef __cplusplus
#include <stdbool.h>
#endif
#include <stddef.h>
#include <uchar.h>
#include <JavaScriptCore/JavaScript.h>
// Inside Tab.cpp, replace your void Tab::OnAddConsoleMessage definition with all of the following:
inline std::string ToUTF8(const String& str) {
String8 utf8 = str.utf8();
return std::string(utf8.data(), utf8.length());
}
inline const char* Stringify(MessageSource source) {
switch(source) {
case kMessageSource_XML: return "XML";
@adamjs
adamjs / promises_test.cpp
Created December 3, 2019 06:50
Testing JavaScript Promises with Ultralight 1.1
#include <AppCore/App.h>
#include <AppCore/Window.h>
#include <AppCore/Overlay.h>
#include <AppCore/JSHelpers.h>
using namespace ultralight;
const char* htmlString();
class MyApp : public LoadListener {
@adamjs
adamjs / select_example.html
Created January 4, 2020 18:41
Example of using JavaScript/CSS to render <select> elements in Ultralight.
<!-- This is an example of using themeable JavaScript replacements to style
<select> elements in Ultralight.
-->
<html>
<head>
<link href="https://unpkg.com/mobius1-selectr@latest/dist/selectr.min.css"
rel="stylesheet" type="text/css">
<script src="https://unpkg.com/mobius1-selectr@latest/dist/selectr.min.js"
type="text/javascript"></script>
<style>
@adamjs
adamjs / MyApp.cpp
Last active January 16, 2020 22:48
Async callback example using JavaScript Promises (Ultralight 1.1)
#include "MyApp.h"
#include <chrono>
#include <thread>
#define WINDOW_WIDTH 600
#define WINDOW_HEIGHT 400
const char* htmlString();
MyApp::MyApp() {