X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=model_shared.c;h=adbe9348adaaa8f4360df748a39f8ccb58beb301;hb=44dbf66cc62e367650e0b0af3ed641fb8deaf15b;hp=0af7ff354f0abd6c87846b277505a6b3c460db16;hpb=ea7c24e1fb41f3b1df984ac0eed6881c9fde16f5;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.c b/model_shared.c index 0af7ff35..adbe9348 100644 --- a/model_shared.c +++ b/model_shared.c @@ -30,12 +30,54 @@ model_t *loadmodel; #define MAX_MOD_KNOWN 2048 static model_t mod_known[MAX_MOD_KNOWN]; +rtexture_t *r_notexture; +rtexturepool_t *r_notexturepool; + +texture_t r_surf_notexture; + +void Mod_SetupNoTexture(void) +{ + int x, y; + qbyte pix[16][16][4]; + + // this makes a light grey/dark grey checkerboard texture + for (y = 0;y < 16;y++) + { + for (x = 0;x < 16;x++) + { + if ((y < 8) ^ (x < 8)) + { + pix[y][x][0] = 128; + pix[y][x][1] = 128; + pix[y][x][2] = 128; + pix[y][x][3] = 255; + } + else + { + pix[y][x][0] = 64; + pix[y][x][1] = 64; + pix[y][x][2] = 64; + pix[y][x][3] = 255; + } + } + } + + r_notexturepool = R_AllocTexturePool(); + r_notexture = R_LoadTexture(r_notexturepool, "notexture", 16, 16, &pix[0][0][0], TEXTYPE_RGBA, TEXF_MIPMAP); +} + +extern void Mod_BrushStartup (void); +extern void Mod_BrushShutdown (void); + static void mod_start(void) { int i; for (i = 0;i < MAX_MOD_KNOWN;i++) if (mod_known[i].name[0]) Mod_UnloadModel(&mod_known[i]); + + Mod_SetupNoTexture(); + Mod_BrushStartup(); } static void mod_shutdown(void) @@ -44,6 +86,9 @@ static void mod_shutdown(void) for (i = 0;i < MAX_MOD_KNOWN;i++) if (mod_known[i].name[0]) Mod_UnloadModel(&mod_known[i]); + + R_FreeTexturePool(&r_notexturepool); + Mod_BrushShutdown(); } static void mod_newmap(void)