int imageSetFilter(lua_State *L) { // image:setFilter() love_image *self = luaobj_checkudata(L, 1, CLASS_TYPE); char *minMode = luaL_checkstring(L, 2); char *magMode = luaL_optstring(L, 3, minMode); u32 minFilter; u32 magFilter; if (strcmp(minMode, "linear") != 0 && strcmp(minMode, "nearest") != 0 && strcmp(magMode, "linear") != 0 && strcmp(magMode, "nearest" != 0)) { luaError(L, "Invalid Image Filter."); return 0; } if (strcmp(minMode, "linear") == 0) minFilter = GPU_TEXTURE_MIN_FILTER(GPU_LINEAR); if (strcmp(magMode, "linear") == 0) magFilter = GPU_TEXTURE_MAG_FILTER(GPU_LINEAR); if (strcmp(minMode, "nearest") == 0) minFilter = GPU_TEXTURE_MIN_FILTER(GPU_NEAREST); if (strcmp(magMode, "nearest") == 0) magFilter = GPU_TEXTURE_MAG_FILTER(GPU_NEAREST); sf2d_texture_set_params(self->texture, magFilter | minFilter); self->minFilter = minMode; self->magFilter = magMode; return 0; }
int imageNew(lua_State *L) { // love.graphics.newImage() const char *filename = luaL_checkstring(L, 1); love_image *self = luaobj_newudata(L, sizeof(*self)); luaobj_setclass(L, CLASS_TYPE, CLASS_NAME); const char *error = imageInit(self, filename); if (error) luaError(L, error); sf2d_texture_set_params(self->texture, defaultFilter); self->minFilter = defaultMinFilter; self->magFilter = defaultMagFilter; return 1; }
Result TextureManager::load(void) { printf("Loading ballLoadingScreen: @%p\n", (ballLoadingScreen = sfil_load_PNG_file(ROMFS "ball_loading_screen.png", SF2D_PLACE_RAM))); if (!ballLoadingScreen) return -5; drawStaticLoadingScreen(); // s32 prio = 0; // threadMainLoop = true; // svcGetThreadPriority(&prio, CUR_THREAD_HANDLE); // threadCreate(_loadingScreen, (void*) this, 4*1024, prio-1, -2, true); Result ret = (loadTextures() ? 0 : -5); if (R_FAILED(ret)) return ret; sf2d_texture_set_params(this->boxTiles, GPU_TEXTURE_MAG_FILTER(GPU_LINEAR) | GPU_TEXTURE_MIN_FILTER(GPU_LINEAR)); // threadMainLoop = false; return ret; }