Compare commits
4 Commits
e7d8e2c2cf
...
9cc31b13ce
Author | SHA1 | Date |
---|---|---|
grant squires | 9cc31b13ce | |
grant squires | 8798ee1979 | |
grant squires | 936c18afe5 | |
grant squires | 3fa295434a |
27
src/glfww.c
27
src/glfww.c
|
@ -1,8 +1,3 @@
|
|||
#include <stdio.h>
|
||||
#include "util.h"
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include "glfww.h"
|
||||
int w,h;
|
||||
|
||||
|
@ -25,7 +20,7 @@ GLFWwindow* glfw_init(){
|
|||
int w,h;
|
||||
glfwGetFramebufferSize(window,&w,&h);
|
||||
glViewport(0,0,w,h);
|
||||
info("yay:D i made a window uwu");
|
||||
logm("yay:D i made a window uwu");
|
||||
return window;
|
||||
/*
|
||||
while(!glfwWindowShouldClose(window)){
|
||||
|
@ -46,7 +41,6 @@ GLFWwindow* glfw_init(){
|
|||
}
|
||||
void refresh_size(GLFWwindow*wi){
|
||||
glfwGetFramebufferSize(wi,&w,&h);
|
||||
//printf("%i,%i\n",w,h);
|
||||
}
|
||||
int get_w(){
|
||||
return w;
|
||||
|
@ -119,6 +113,25 @@ void glfw_square(GLFWwindow* wi,int x, int y, int r){
|
|||
}
|
||||
glEnd();
|
||||
}
|
||||
GLuint vshader_comp(const char* shader_src){
|
||||
GLuint vertid = glCreateShader(GL_VERTEX_SHADER);
|
||||
glShaderSource(vertid,1,(const GLchar**)&shader_src, NULL);
|
||||
glCompileShader(vertid);
|
||||
return vertid;
|
||||
}
|
||||
GLuint fshader_comp(const char* shader_src){
|
||||
GLuint fragid = glCreateShader(GL_FRAGMENT_SHADER);
|
||||
glShaderSource(fragid,1,(const GLchar**)&shader_src, NULL);
|
||||
glCompileShader(fragid);
|
||||
return fragid;
|
||||
}
|
||||
GLuint build_shader(GLuint vertid, GLuint fragid){
|
||||
GLuint progid = glCreateProgram();
|
||||
glAttachShader(progid,vertid);
|
||||
glAttachShader(progid,fragid);
|
||||
glLinkProgram(progid);
|
||||
return progid;
|
||||
}
|
||||
int __glw_main(){
|
||||
GLFWwindow* w = glfw_init();
|
||||
glfw_circle(w,50,50,20);
|
||||
|
|
23
src/glfww.h
23
src/glfww.h
|
@ -8,23 +8,26 @@
|
|||
#include <math.h>
|
||||
#ifndef __glfww_
|
||||
#define __glfww_
|
||||
|
||||
#define win_clean() glfwTerminate();
|
||||
#define ab_to_vp(x,y,w,h,x1,y1) float x = 2 * ((float)x1/(w)) -1;\
|
||||
float y = 2 * ((float)y1/(h)) -1;
|
||||
#define vp_to_ab(w,x1) ((float)x1 +1.0/2)*w
|
||||
GLFWwindow* glfw_init();
|
||||
#define glfw_load(w) glfwSwapBuffers(w);
|
||||
void glfw_loop(GLFWwindow*window);
|
||||
int get_h();
|
||||
int get_w();
|
||||
void glfw_pixel_partial(GLFWwindow*wi,int x, int y);
|
||||
void glfw_clear(GLFWwindow*w);
|
||||
void refresh_size(GLFWwindow*);
|
||||
#define glfw_pixel(wi,x,y)\
|
||||
glBegin(GL_POINTS);\
|
||||
glfw_pixel_partial(wi,x,y);\
|
||||
glEnd();
|
||||
void glfw_circle(GLFWwindow* w,int x, int y, int r);
|
||||
void glfw_circle_partial(GLFWwindow* w,int x, int y, int r);
|
||||
GLuint vshader_comp(const char*);
|
||||
GLuint fshader_comp(const char*);
|
||||
GLuint build_shader(GLuint, GLuint);
|
||||
GLFWwindow* glfw_init();
|
||||
void glfw_loop(GLFWwindow*);
|
||||
int get_h();
|
||||
int get_w();
|
||||
void glfw_pixel_partial(GLFWwindow*,int, int);
|
||||
void glfw_clear(GLFWwindow*);
|
||||
void refresh_size(GLFWwindow*);
|
||||
|
||||
void glfw_circle(GLFWwindow*,int, int, int);
|
||||
void glfw_circle_partial(GLFWwindow*,int, int, int);
|
||||
#endif
|
||||
|
|
681
src/point.c
681
src/point.c
File diff suppressed because it is too large
Load Diff
|
@ -1,62 +0,0 @@
|
|||
#include <SDL2/SDL.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "util.h"
|
||||
#include "sdlw.h"
|
||||
#define sdl_clear(r) SDL_SetRenderDrawColor(r,0,0,0,0);\
|
||||
SDL_RenderClear(r);
|
||||
bw sdl_init(){
|
||||
if(SDL_Init(SDL_INIT_VIDEO)<0){
|
||||
err("failed to initialize sdl2 lib:(",pexit);
|
||||
}
|
||||
SDL_Renderer *r;
|
||||
SDL_Window *w;
|
||||
SDL_CreateWindowAndRenderer(400,400,0,&w,&r);
|
||||
|
||||
if(!w)
|
||||
err("failed to create window",pexit);
|
||||
sdl_clear(r);
|
||||
SDL_RenderPresent(r);
|
||||
//SDL_Delay(5000);
|
||||
bw both;
|
||||
both.w =w;
|
||||
both.r =r;
|
||||
return both;
|
||||
}
|
||||
void sdl_loop(bw w){
|
||||
SDL_Event e;
|
||||
//SDL_SetRenderDrawColor(w.r,255,0,0,255);
|
||||
//for(int i = 0; i!=50;i++)
|
||||
// SDL_RenderDrawPoint(w.r,i,i);
|
||||
SDL_RenderPresent(w.r);
|
||||
for(;;){
|
||||
while(SDL_PollEvent(&e) > 0){
|
||||
switch(e.type){
|
||||
case SDL_QUIT:
|
||||
return;
|
||||
}
|
||||
|
||||
//SDL_UpdateWindowSurface(w.w);
|
||||
}
|
||||
}
|
||||
}
|
||||
void sdl_circle(bw w,int x, int y, int r){
|
||||
SDL_SetRenderDrawColor(w.r,255,255,0,0);
|
||||
for(int i = 1; i!=360; i++){
|
||||
float cf = cosf(i);
|
||||
float sf = sinf(i);
|
||||
for(int z = 1; z<=r; z++){
|
||||
int x2 = x + z * cf;
|
||||
int y2 = y + z * sf;
|
||||
|
||||
SDL_RenderDrawPoint(w.r,x2,y2);
|
||||
}
|
||||
}
|
||||
}
|
||||
int main__2(){
|
||||
bw b = sdl_init();
|
||||
SDL_SetRenderDrawColor(b.r,255,255,0,0);
|
||||
SDL_RenderDrawPoint(b.r,5,5);
|
||||
sdl_loop(b);
|
||||
return 0;
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
#include <SDL2/SDL.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "util.h"
|
||||
typedef struct {
|
||||
SDL_Window* w;
|
||||
SDL_Renderer* r;
|
||||
} bw;
|
||||
#define sdl_clear(r) SDL_SetRenderDrawColor(r,0,0,0,0);\
|
||||
SDL_RenderClear(r);
|
||||
bw sdl_init();
|
||||
void sdl_loop(bw);
|
||||
void sdl_circle(bw w,int x, int y, int r);
|
|
@ -2,16 +2,7 @@
|
|||
#include <stdlib.h>
|
||||
#ifndef __str__
|
||||
#define __str__
|
||||
//#define init_str(buffer) (buffer); \
|
||||
{buffer = (char*)malloc(sizeof(char));\
|
||||
buffer[0]='\0';}
|
||||
//#define str_size(str,sizeb) (sizeb); \
|
||||
for(sizeb=0;;sizeb++)if(str[sizeb]=='\0')break;
|
||||
//#define str_push(str,ch)\
|
||||
int size_y = str_size(str);\
|
||||
str = (char*)realloc(str,sizeof(char*)*(size_y+1));\
|
||||
str[size_y]=ch;\
|
||||
str[size_y+1]='\0';
|
||||
|
||||
typedef struct {
|
||||
char*str;
|
||||
int len;
|
||||
|
|
31
src/util.c
31
src/util.c
|
@ -4,11 +4,19 @@
|
|||
#include <math.h>
|
||||
#include "strings.h"
|
||||
double allocs = 0;
|
||||
//#define malloc(X) mmalloc(X);
|
||||
int forced_length = 15;
|
||||
double binomial(int n, int k){
|
||||
if(n==k)
|
||||
return 1.0;
|
||||
double v = 1.0;
|
||||
for(int i = 1; i<=k; i++){
|
||||
v=v*((float)(n+1-i)/i);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
void mmalloc(){
|
||||
allocs++;
|
||||
}
|
||||
//#define free(X) ffree(X);
|
||||
void ffree(){
|
||||
allocs--;
|
||||
}
|
||||
|
@ -19,6 +27,7 @@ void pexit(int s){
|
|||
exit(s);
|
||||
}
|
||||
void sig_handle(void){
|
||||
if(log_level<=-1) return;
|
||||
if(allocs>0){
|
||||
char ssa[45];
|
||||
sprintf(ssa,"%s | (found %i)","uneven allocations, memory leak(s)",(int)nearbyint(allocs));
|
||||
|
@ -68,11 +77,11 @@ char* force_ca_length(char*inp,int len){
|
|||
return nya;
|
||||
}
|
||||
void err_m(char*ca,void (*cb)(int),char*f,int l){
|
||||
if(log_level!=-1){
|
||||
if(log_level>-1){
|
||||
int len = ca_size(f) + int_len(l);
|
||||
char nn[len];
|
||||
sprintf(nn,"%s:%i",f,l);
|
||||
char* aa = force_ca_length(nn,15);
|
||||
char* aa = force_ca_length(nn,forced_length);
|
||||
printf("\x1b[90m%s \x1b[31m[ !err ]\x1b[0m %s\n",aa,ca);
|
||||
free(aa);
|
||||
}
|
||||
|
@ -84,7 +93,7 @@ void warn_m(char*ca,char*f,int l,...){
|
|||
int len = ca_size(f) + int_len(l);
|
||||
char nn[len];
|
||||
sprintf(nn,"%s:%i",f,l);
|
||||
char* aa = force_ca_length(nn,15);
|
||||
char* aa = force_ca_length(nn,forced_length);
|
||||
printf("\x1b[90m%s \x1b[33m[ warn ]\x1b[0m %s\n",aa,ca);
|
||||
free(aa);
|
||||
}
|
||||
|
@ -94,18 +103,18 @@ void info_m(char*ca,char*f,int l,...){
|
|||
int len = ca_size(f) + int_len(l);
|
||||
char nn[len];
|
||||
sprintf(nn,"%s:%i",f,l);
|
||||
char* aa = force_ca_length(nn,15);
|
||||
char* aa = force_ca_length(nn,forced_length);
|
||||
printf("\x1b[90m%s [ info ] %s\x1b[0m\n",aa,ca);
|
||||
free(aa);
|
||||
}
|
||||
void log_m(char*ca,char*f,int l,...){
|
||||
if(log_level<0)
|
||||
if(log_level<2)
|
||||
return;
|
||||
int len = ca_size(f) + int_len(l);
|
||||
char nn[len];
|
||||
sprintf(nn,"%s:%i",f,l);
|
||||
char* aa = force_ca_length(nn,15);
|
||||
printf("\x1b[35m%s [ log ] \x1b[0m%s\n",aa,ca);
|
||||
char* aa = force_ca_length(nn,forced_length);
|
||||
printf("\x1b[35m%s [ log ] \x1b[90m%s\x1b[0m\n",aa,ca);
|
||||
free(aa);
|
||||
}
|
||||
void flag_handle(int argc,char* argv[]){
|
||||
|
@ -117,10 +126,10 @@ void flag_handle(int argc,char* argv[]){
|
|||
break;
|
||||
switch(argv[i][y]){
|
||||
case 'q':
|
||||
log_level=-1;
|
||||
log_level-=1;
|
||||
break;
|
||||
case 'd':case 'v':
|
||||
log_level=2;
|
||||
log_level+=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
24
src/util.h
24
src/util.h
|
@ -1,15 +1,24 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include "string.h"
|
||||
#ifndef __util__
|
||||
#define __util__
|
||||
#include "string.h"
|
||||
#define greater(a,b) (a>b?a:b)
|
||||
#define lesser(a,b) (a>b?b:a)
|
||||
#define diff(a,b) (a>b?a-b:b-a)
|
||||
static const double FL_DIS = 1e-10;
|
||||
static const double NaN = 0.0f/0.0f;
|
||||
|
||||
#define greater(a,b) ((a)>(b)?(a):(b))
|
||||
#define lesser(a,b) ((a)>(b)?(b):(a))
|
||||
#define diff(a,b) ((a)>(b)?(a)-(b):(b)-(a))
|
||||
#define malloc(X) malloc(X); mmalloc();
|
||||
void mmalloc();
|
||||
#define free(X) free(X); ffree();
|
||||
#define err(s,f,...) err_m(s,f,__FILE__,__LINE__,##__VA_ARGS__);
|
||||
#define warn(s) warn_m(s,__FILE__,__LINE__);
|
||||
#define info(s) info_m(s,__FILE__,__LINE__);
|
||||
#define logm(s) log_m(s,__FILE__,__LINE__);
|
||||
|
||||
double binomial(int n, int k);
|
||||
void mmalloc();
|
||||
void ffree();
|
||||
void err_m(char*,void (*)(int),char*,int);
|
||||
void warn_m(char*,char*,int ,...);
|
||||
|
@ -21,9 +30,4 @@ unsigned int_len(const unsigned n);
|
|||
char* force_ca_length(char*inp,int len);
|
||||
void pexit(int s);
|
||||
|
||||
#define err(s,f,...) err_m(s,f,__FILE__,__LINE__,##__VA_ARGS__);
|
||||
#define warn(s) warn_m(s,__FILE__,__LINE__);
|
||||
#define info(s) info_m(s,__FILE__,__LINE__);
|
||||
#define logm(s) log_m(s,__FILE__,__LINE__);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue