From d80453b5cbf958084a21e624b1dcd2798f19659a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 23 Aug 2013 02:27:56 +0300 Subject: add support for size attribute in physfsrwops for SDL2. --- src/utils/physfsrwops.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/utils/physfsrwops.cpp') diff --git a/src/utils/physfsrwops.cpp b/src/utils/physfsrwops.cpp index 62330f33a..d0560fb1e 100644 --- a/src/utils/physfsrwops.cpp +++ b/src/utils/physfsrwops.cpp @@ -151,6 +151,15 @@ static int physfsrwops_close(SDL_RWops *const rw) return 0; } /* physfsrwops_close */ +#ifdef USE_SDL2 +static PHYSFSINT physfsrwops_size(SDL_RWops *const rw) +{ + PHYSFS_file *const handle = static_cast( + rw->hidden.unknown.data1); + return PHYSFS_fileLength(handle); +} /* physfsrwops_size */ +#endif + static SDL_RWops *create_rwops(PHYSFS_file *const handle) { SDL_RWops *retval = nullptr; @@ -164,6 +173,9 @@ static SDL_RWops *create_rwops(PHYSFS_file *const handle) retval = SDL_AllocRW(); if (retval) { +#ifdef USE_SDL2 + retval->size = physfsrwops_size; +#endif retval->seek = physfsrwops_seek; retval->read = physfsrwops_read; retval->write = physfsrwops_write; -- cgit v1.2.3-60-g2f50