Skip to content

Instantly share code, notes, and snippets.

Avatar

Mārtiņš Možeiko mmozeiko

  • RAD Game Tools
  • Kirkland, WA
View GitHub Profile
@mmozeiko
mmozeiko / capture_desktop_dxgi_gl.c
Last active Dec 2, 2019
Capture desktop with IDXGIOutputDuplication and use as OpenGL texture
View capture_desktop_dxgi_gl.c
//
// First download glcorearb.h, wglext.h and platform.h files
// Then compile: cl.exe capture_desktop_dxgi_gl.c /I. d3d11.lib dxgi.lib dxguid.lib gdi32.lib opengl32.lib user32.lib dwmapi.lib
//
#define COBJMACROS
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <d3d11.h>
@mmozeiko
mmozeiko / webcam_capture.c
Created Aug 28, 2019
Capture webcam device with Media Foundation API
View webcam_capture.c
#define COBJMACROS
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <mfapi.h>
#include <mfidl.h>
#include <mfreadwrite.h>
#include <stdio.h>
#include <intrin.h>
@mmozeiko
mmozeiko / raspbian_buster.txt
Last active Jul 20, 2019
OpenGL info on Raspberry Pi 4
View raspbian_buster.txt
EGL_VENDOR = Mesa Project
EGL_VERSION = 1.4
EGL_CLIENT_APIS = OpenGL OpenGL_ES
EGL_EXTENSIONS = EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export
// GLES API
GL_VENDOR = Broadcom
GL_RENDERER = V3D 4.2
GL_VERSION = OpenGL ES 3.0 Mesa 19.1.2
@mmozeiko
mmozeiko / test.c
Last active Jun 25, 2019
SetForegroundWindow
View test.c
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WindowProc(HWND wnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
if (msg == WM_TIMER)
{
printf("press SPACE now\n");
DWORD tid = GetWindowThreadProcessId(wnd, NULL);
@mmozeiko
mmozeiko / ods.c
Created Apr 16, 2019
Example how to capture OutputDebugString on Windows
View ods.c
#include <windows.h>
#include <intrin.h>
#define Assert(x) do { if (!(x)) __debugbreak(); } while (0)
static struct
{
DWORD process_id;
char data[4096 - sizeof(DWORD)];
}* ods_buffer;
@mmozeiko
mmozeiko / info.txt
Last active Jun 7, 2020
OpenGL info with mesa vc4 on RaspberryPi 3B+ with 64-bit ArchLinuxArm (aarch64)
View info.txt
$ cat /etc/issue
Arch Linux \r (\l)
$ uname -a
Linux alarm3 4.20.8-1-ARCH #1 SMP Tue Feb 12 21:12:07 MST 2019 aarch64 GNU/Linux
##### EGL info
EGL client extensions = EGL_EXT_client_extensions EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_MESA_platform_gbm
@mmozeiko
mmozeiko / info.txt
Last active Jun 7, 2020
OpenGL info with mesa vc4 on RaspberryPi 0 with 32-bit ArchLinuxArm (armv6)
View info.txt
$ cat /etc/issue
Arch Linux \r (\l)
$ uname -a
Linux alarm0 4.14.98-1-ARCH #1 SMP Wed Feb 13 04:28:06 UTC 2019 armv6l GNU/Linux
##### EGL info
EGL client extensions = EGL_EXT_client_extensions EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_MESA_platform_gbm
@mmozeiko
mmozeiko / main.cpp
Created Feb 13, 2019
Windows drag & drop example
View main.cpp
/*
Minimal Drag and Drop Application for Windows
Copright (C) Alexandre LHUILLIER - 2019
===
This application creates an application window and a console window.
Whenever you drag a file or a set of files from the Windows explorer
to the application window, the absolute paths of the dropped files
are printed in the console window.
@mmozeiko
mmozeiko / unitypackage2zip.py
Created Feb 9, 2019
Python script that converts .unitypackage file to .zip archive
View unitypackage2zip.py
#!/usr/bin/env python3
import sys
import tarfile
import zipfile
from pathlib import Path
src = sys.argv[1]
dst = Path(src).name + ".zip"
@mmozeiko
mmozeiko / go_aeshash.h
Created Nov 14, 2018
Go's AES-NI based hash
View go_aeshash.h
#include <stddef.h>
#include <stdint.h>
#include <intrin.h>
// see aeshashbody in https://github.com/golang/go/blob/master/src/runtime/asm_amd64.s
// this is initialized on process startup with random from system
static __declspec(align(16)) uint8_t aeskeysched[128];
static __declspec(align(16)) const uint8_t masks[16][16] =
You can’t perform that action at this time.