Cool visualization of different sorting algorithms. You can watch each algorithm individually and see it explained at https://www.toptal.com/developers/sorting-algorithms.
PUT YOUR BEARD IN MY MOUTH

★
$LAYYYTER
Stranger Things

gracie abrams
I'd rather be in outer space 🛸

Kiana Khansmith
Claire Keane

bliss lane

cherry valley forever

shark vs the universe
Lint Roller? I Barely Know Her
Show & Tell
Misplaced Lens Cap
tumblr dot com

Origami Around
trying on a metaphor

titsay
seen from Malaysia

seen from United States
seen from United States
seen from Bangladesh
seen from Bangladesh
seen from Colombia
seen from Saudi Arabia

seen from Kyrgyzstan

seen from United Kingdom

seen from United Kingdom
seen from United States

seen from United States

seen from Türkiye
seen from United States

seen from United States
seen from United States
seen from United States
seen from United States

seen from United States
seen from United States
@codigosbobos-blog
Cool visualization of different sorting algorithms. You can watch each algorithm individually and see it explained at https://www.toptal.com/developers/sorting-algorithms.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
iiiiinteresting
(x)
playCB: meu pequeno orgulhinho
https://github.com/sinayra/PlayCB
http://wpos.cic.unb.br/artigos/2014003.pdf
Erro de permissão e erro de “insert disk into device\harddisk1\dr1″
1- http://www.techspot.com/community/topics/usb-drive-or-flash-problems-how-to-cleanup-and-remove-old-usb-storage-drivers.145884/
2- https://www.youtube.com/watch?v=Aj7-pLaAq2c
3- http://stackoverflow.com/questions/7655471/ld-exe-cannot-open-output-file-permission-denied
Não sei por que tive problema com isso, mas seguindo esses 3 links, foi batata. Também não sei qual dos 3 de fato tirou esses os problemas que eu tava tendo de fato, mas o que importa é que posso programar em paz de novo.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Criando binários para seus arquivos .h
g++ -s -shared -I../include *.cpp -lglfw -lopengl32 -lglu32 -oplayCB.dll -Wl,—out-implib,libplayCB.a
É só compilar os fontes, *cpp, linkar as bibliotecas que normalmente incluiria e usar essas novas diretivas! Yuhul!
Glew experimental
Ela vem setada como false.
O que acontece é o seguinte: os drivers ficam atualizando, atualizando, atualizando, num ritmo muito muito muito rápido, que algumas vezes eles esquecem que tem que colocar as coisas num padrãozinho pra sua máquina e seu opengl reconhecer as funções da glew, independente da placa de vídeo. Aí, com o glew experimental setado como true, o glew vai fazer uma busca um pouco mais rígida nessas funções que não tão bem documentadinhas.
É tipo uma festa. A glew chamou um monte de funções pra festinha de aniversário. Só que, quando a glew vai conferir na listinha de convidados quem tá na festa mesmo, ela acaba não encontrando algumas de suas funções amigas. Aí ela decide procurar debaixo da mesa e acaba encontrando as funções tímidas.
Pra quem tá fazendo aplicações que usem, por exemplo, o glGenVertexArrays, é bom setar a glewExperimental como true. Assim evita segmentation fault.
Um espaço faz toda a diferença quando se coloca variáveis do sistema do windows
Todos os warning da face da terra
-Wall -Weffc++ -pedantic \ -pedantic-errors -Wextra -Wall -Waggregate-return -Wcast-align \ -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ -Wdisabled-optimization \ -Werror -Wfloat-equal -Wformat -Wformat=2 \ -Wformat-nonliteral -Wformat-security \ -Wformat-y2k \ -Wimplicit -Wimport -Winit-self -Winline \ -Winvalid-pch \ -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ -Wmissing-field-initializers -Wmissing-format-attribute \ -Wmissing-include-dirs -Wmissing-noreturn \ -Wpacked -Wpadded -Wparentheses -Wpointer-arith \ -Wredundant-decls -Wreturn-type \ -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default \ -Wswitch-enum -Wtrigraphs -Wuninitialized \ -Wunknown-pragmas -Wunreachable-code -Wunused \ -Wunused-function -Wunused-label -Wunused-parameter \ -Wunused-value -Wunused-variable -Wvariadic-macros \ -Wvolatile-register-var -Wwrite-strings
~~Doidera~~
Não mude o compilador faltando dois dias pra entregar o trabalho. Problemas ocorrerão.
Eu

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Uma notinha ao renderizar objetos usando shaders
void renderFunction(){ glClear( GL_COLOR_BUFFER_BIT ); glDrawArrays(GL_LINE_LOOP, 0, 4); glfwSwapBuffers(); }
Não importa quantos pontos você define lá na funçãozinha de CreateVBO; ele só vai renderizar os arrays que você definiu de acordo com essa função.
O primeiro argumento se refere a que tipo de geometria você vai desenhar, que podem ser:
GL_POINTS,
GL_LINE_STRIP,
GL_LINE_LOOP,
GL_LINES,
GL_LINE_STRIP_ADJACENCY,
GL_LINES_ADJACENCY,
GL_TRIANGLE_STRIP,
GL_TRIANGLE_FAN,
GL_TRIANGLES,
GL_TRIANGLE_STRIP_ADJACENCY,
GL_TRIANGLES_ADJACENCY
GL_PATCHES
Ainda vou descobrir o que esse GL_PATCHES faz, o resto é bem intuitivo.
O segundo argumento é qual índice do array ele vai começar a pegar as coisas [?????]. Em geral... 0???? Parece tão óbvio que parece errado.
E o terceiro argumento é quantos índices serão gerados a cada loop. São 3 eixos + transformação, então, por enquanto, pra mim só vai 4 ali.
Ainda tenho que estudar direitinho o que este glDrawArray faz. E ver como funciona as transformações.
Tentativa de explicar o Parallax do Tilemap (SDL)
void TileMap::renderLayer(float parallax, int cameraX, int cameraY){ if(tileset != NULL){ for(int k = 0; k < mapLayers; k++){ for(int j = 0; j < mapHeight; j++){ for(int i = 0; i < mapWidth; i++){ if(tileMatrix[i][j][k] > -1) tileset->render(tileMatrix[i][j][k], (i * tileset->getTileWidth()) - cameraX * ((k + 1) * parallax), (j * tileset->getTileHeight()) - cameraY * ((k + 1) * parallax)); } } } } }
Então, piadinhas a parte, eu tenho esta função que manda pra função tileset renderizar cada índice da matriz montada. Mais ou menos desta forma:
tileset: ┌ ┐ └ ┘ ─ │
indice: 0 1 2 3 4 5
tilemap: 0 4 4 1
5 5
2 4 4 3
tilemap na tela:
┌──┐
│ │
└──┘
Basicamente, o tilemap só manda o índice do tileset pra ele renderizar. Desta forma eu achei legal como foi montada as coisas.
Bom, naquela função que tá ali em cima, eu mando cada índice de cada tile da matriz, além da posição x e da posição y dela.
(i * tileset->getTileWidth())
Neste argumento aqui, eu pego a largura do tile e multiplico pela posição i na matriz, ou seja, a posição x dela na imagem em geral.
(Multiplicando pelo x da posição na matriz)
(Sem multiplicar pelo x da matriz)
- cameraX * ((k + 1) * parallax)
Eu subtraio pela câmera porque, quando mais a câmera anda, por exemplo, pra esquerda, mais as coisas vão para a direita, então, as coisas devem ir pro lado contrário que a câmera está se movimentando.
Este
+ 1
em
(k + 1)
é arbitrário, eu poderia ter escolhido qualquer constante que vai definir a velocidade que as coisas se movem de acordo com a camada que elas estão definidas.
O parallax, último argumento que tá multiplicando aí, é o quão distante as coisas vão ficar de acordo de como eu me movimentar no jogo. Se eu tenho duas camadas, uma com z = 0 e outra z = 1, e ambas no mesmo x e no mesmo y, quando eu me movimentar, eu levo em consideração a velocidade que vão se mover (com o k + 1) e multiplico pela constante parallax: quanto mais alta é a camada, mais rápida ela vai se mover e maior vai ser a distância entre o x e o y delas.
Meu uso de # e .
Há duas coisas que fazem a mesma coisa em HTML, mas que uso de jeito diferente:
#divisoria{ position:relative; top: 10px; left:20px; } #divisoria .titulo{ font-size: 20px; color: #FF0000; font-weight: bold; }
Uma eu delimito como fica a divisória, com outra eu vou colorindo. Limitando a divisória, só uso o # uma vez, enquanto o outro, que herda coisinhas somente daquela divisória, várias vezes. Não sei o nome disso, mas acho que assim que usa.
GameEngine são feitas pra serem genéricas. Não podem ser alteradas depois de "prontas". O programador vai usar "render()" e ele não quer saber se o que renderiza é opengl ou sdl e nem vai sequer mexer nisso depois.
Meu namorado
GLEW com GLFW
Eu estava usando este tutorial aqui para aprender um pouco mais sobre shaders, que, por enquanto, estou fazendo a mesma coisa que nas implementações jurássicas, só que de uma forma bem mais complicada.
Ele, assim como qualquer livro sobre OpenGL, trabalha com GLUT, que é legal pra começar até você descobrir que não precisa de todo aquele sofrimento pra inicializar coisas. Por conta disso, todo tutorial que pego desses caras eu "traduzo" pra GLFW. Coisas novas sempre são legais.
E uma coisa que descobri que inicializar contexto com GLUT é diferente de inicializar contexto com GLFW.
Pro contexto funcionar direitinho, você precisa abrir a janela. Por razões.
void resizeFunction(){ if( !glfwOpenWindow( 512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW ) ){ glfwTerminate(); exit(-1); } glfwGetWindowSize( &width, &height ); height = height > 0 ? height : 1; glViewport( 0, 0, width, height ); } void initWindow(){ GLenum err; glfwInit(); resizeFunction(); glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 4 ); glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 0 ); glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE ); err = glewInit(); if( GLEW_OK != err ){ fprintf(stderr, "Error initializing GLEW: %s\n", glewGetErrorString(err) ); } else{ fprintf(stderr, "GLEW inicializada!"); } fprintf(stderr,"INFO: OpenGL Version: %s\n", glGetString(GL_VERSION)); }

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Primeira coisa que tem que ter quando for programar no windows usando GLEW
#define GLEW_STATIC #include <GL/glew.h> #include <GL/gl.h> #include <GL/glu.h>
Só depois disso que você incluirá sua biblioteca glut/freeglut/glfw/diabo a quatro.
Sorts fofos