-void TextureModeExport( ETexturesMode& self, const IntImportCallback& importer ){
- switch ( self )
- {
- case eTextures_NEAREST:
- importer( 0 );
- break;
- case eTextures_NEAREST_MIPMAP_NEAREST:
- importer( 1 );
- break;
- case eTextures_LINEAR:
- importer( 2 );
- break;
- case eTextures_NEAREST_MIPMAP_LINEAR:
- importer( 3 );
- break;
- case eTextures_LINEAR_MIPMAP_NEAREST:
- importer( 4 );
- break;
- case eTextures_LINEAR_MIPMAP_LINEAR:
- importer( 5 );
- break;
- case eTextures_MAX_ANISOTROPY:
- importer( 6 );
- break;
- default:
- importer( 4 );
- }
-}
-typedef ReferenceCaller<ETexturesMode, void(const IntImportCallback&), TextureModeExport> TextureModeExportCaller;
+struct TextureMode {
+ static void Export(const ETexturesMode &self, const Callback<void(int)> &returnz) {
+ switch (self) {
+ case eTextures_NEAREST:
+ returnz(0);
+ break;
+ case eTextures_NEAREST_MIPMAP_NEAREST:
+ returnz(1);
+ break;
+ case eTextures_LINEAR:
+ returnz(2);
+ break;
+ case eTextures_NEAREST_MIPMAP_LINEAR:
+ returnz(3);
+ break;
+ case eTextures_LINEAR_MIPMAP_NEAREST:
+ returnz(4);
+ break;
+ case eTextures_LINEAR_MIPMAP_LINEAR:
+ returnz(5);
+ break;
+ case eTextures_MAX_ANISOTROPY:
+ returnz(6);
+ break;
+ default:
+ returnz(4);
+ }
+ }
+
+ static void Import(ETexturesMode &self, int value) {
+ switch (value) {
+ case 0:
+ Textures_SetMode(eTextures_NEAREST);
+ break;
+ case 1:
+ Textures_SetMode(eTextures_NEAREST_MIPMAP_NEAREST);
+ break;
+ case 2:
+ Textures_SetMode(eTextures_LINEAR);
+ break;
+ case 3:
+ Textures_SetMode(eTextures_NEAREST_MIPMAP_LINEAR);
+ break;
+ case 4:
+ Textures_SetMode(eTextures_LINEAR_MIPMAP_NEAREST);
+ break;
+ case 5:
+ Textures_SetMode(eTextures_LINEAR_MIPMAP_LINEAR);
+ break;
+ case 6:
+ Textures_SetMode(eTextures_MAX_ANISOTROPY);
+ }
+ }
+};