Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
//Source: https://bitbucket.org/dandago/gigilabs/src/master/Sdl2PixelDrawing/Sdl2PixelDrawing/main.cpp #include
#include
#include
//Define window height, width #define height 1280 #define width 760 int main(){ bool leftMouseButtonDown = false; bool quit = false; SDL_Event event; SDL_Init(SDL_INIT_VIDEO); SDL_Window * window = SDL_CreateWindow("SDL2 Pixel Drawing", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, height, width, SDL_WINDOW_FULLSCREEN); SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); //SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0); SDL_Texture * texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, height, width); Uint32 * pixels = new Uint32[height * width]; Uint32 colour = 0xFF0000; memset(pixels, 255, height * width * sizeof(Uint32)); //int is bg color while (!quit){ SDL_UpdateTexture(texture, NULL, pixels, height * sizeof(Uint32)); SDL_WaitEvent(&event); switch (event.type){ case SDL_QUIT: quit = true; break; case SDL_MOUSEBUTTONUP: if (event.button.button == SDL_BUTTON_LEFT) leftMouseButtonDown = true; break; case SDL_MOUSEBUTTONDOWN: if(event.button.button ==SDL_BUTTON_RIGHT ){ memset(pixels, 23, height * width * sizeof(Uint32)); //int is bg color } if (event.button.button == SDL_BUTTON_LEFT) leftMouseButtonDown = true; case SDL_MOUSEMOTION: if (leftMouseButtonDown){ int mouseX = event.motion.x; int mouseY = event.motion.y; colour+=mouseY*8+mouseX*8; //makes a nice scaling effect. if(colour>=0xFFFFFF) colour=0xFF0000; pixels[mouseY * height+ mouseX] = colour; } break; } SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); } delete[] pixels; SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)