#include #include #include #include #define GLSL_SOURCE(...) #__VA_ARGS__ #define BUFFER_SIZE (256 * sizeof(uint32_t)) void DebugCallBack(PulseDebugMessageSeverity severity, const char* message) { if(severity == PULSE_DEBUG_MESSAGE_SEVERITY_ERROR) { fprintf(stderr, "Pulse Error: %s\n", message); exit(1); } else if(severity == PULSE_DEBUG_MESSAGE_SEVERITY_WARNING) fprintf(stderr, "Pulse Warning: %s\n", message); else printf("Pulse: %s\n", message); } int main(int ac, char** av) { PulseBackendFlags backend_type = PULSE_BACKEND_OPENGL; if(ac >= 2 && strcmp(av[1], "--opengl-es") == 0) backend_type = PULSE_BACKEND_OPENGL_ES; PulseBackend backend = PulseLoadBackend(backend_type, PULSE_SHADER_FORMAT_GLSL_BIT, PULSE_HIGH_DEBUG); PulseSetDebugCallback(backend, DebugCallBack); PulseDevice device = PulseCreateDevice(backend, NULL, 0); PulseBufferCreateInfo buffer_create_info = { 0 }; buffer_create_info.size = BUFFER_SIZE; buffer_create_info.usage = PULSE_BUFFER_USAGE_STORAGE_READ | PULSE_BUFFER_USAGE_STORAGE_WRITE | PULSE_BUFFER_USAGE_TRANSFER_DOWNLOAD; PulseBuffer buffer = PulseCreateBuffer(device, &buffer_create_info); PulseDestroyBuffer(device, buffer); PulseDestroyDevice(device); PulseUnloadBackend(backend); printf("Successfully executed Pulse example using %s !\n", backend_type == PULSE_BACKEND_OPENGL ? "OpenGL" : "OpenGL ES"); return 0; }