Code cleanup: remove readblenfile module, only contained some utility functions

to read .blend files from runtimes, folded those into blenloader.
This commit is contained in:
2011-05-11 19:29:23 +00:00
parent fcc85eea12
commit 3a34dcde68
18 changed files with 59 additions and 330 deletions

View File

@@ -145,10 +145,6 @@
* merged in docs.
*/
/** \defgroup blo readblenfile
* \ingroup blender data
*/
/** \defgroup quicktime quicktime
* \ingroup blender

View File

@@ -91,7 +91,6 @@ add_subdirectory(blenlib)
add_subdirectory(render)
add_subdirectory(blenfont)
add_subdirectory(blenloader)
add_subdirectory(readblenfile)
add_subdirectory(blenpluginapi)
add_subdirectory(ikplugin)
add_subdirectory(gpu)

View File

@@ -12,7 +12,6 @@ SConscript(['avi/SConscript',
'imbuf/SConscript',
'makesdna/SConscript',
'makesrna/SConscript',
'readblenfile/SConscript',
'render/SConscript',
'nodes/SConscript',
'modifiers/SConscript',

View File

@@ -25,27 +25,29 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*
*/
#include <string.h> // strlen
#include "BLO_readblenfile.h"
struct streamGlueControlStruct *Global_streamGlueControl;
#ifndef BLO_RUNTIME_H
#define BLO_RUNTIME_H
int
streamGlueWrite(
struct streamGlueControlStruct *streamGlueControl,
struct streamGlueStruct **streamGlue,
unsigned char *data,
unsigned int dataIn,
int finishUp)
{
printf("called with %d bytes in buffer [%s]\n", dataIn, data);
return (0);
/** \file BLO_runtime.h
* \ingroup blenloader
*/
#ifdef __cplusplus
extern "C" {
#endif
struct BlendFileData;
struct ReportList;
int BLO_is_a_runtime(char *file);
struct BlendFileData *BLO_read_runtime(char *file, struct ReportList *reports);
#ifdef __cplusplus
}
#endif
main()
{
int err;
#endif /* BLO_RUNTIME_H */
err = BLO_readblenfile();
}

View File

@@ -29,7 +29,6 @@ set(INC
../blenlib
../blenkernel
../makesdna
../readblenfile
../makesrna
../render/extern/include
../../../intern/guardedalloc
@@ -39,10 +38,12 @@ set(INC
set(SRC
intern/readblenentry.c
intern/readfile.c
intern/runtime.c
intern/undofile.c
intern/writefile.c
BLO_readfile.h
BLO_runtime.h
BLO_soundfile.h
BLO_sys_types.h
BLO_undofile.h

View File

@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('intern/*.c')
incs = '. #/intern/guardedalloc ../blenlib ../blenkernel'
incs += ' ../makesdna ../readblenfile ../editors/include'
incs += ' ../makesdna ../editors/include'
incs += ' ../render/extern/include ../makesrna'
incs += ' ' + env['BF_ZLIB_INC']

View File

@@ -62,8 +62,6 @@
#include "readfile.h"
#include "BLO_readblenfile.h"
#include "BLO_sys_types.h" // needed for intptr_t
#ifdef _WIN32

View File

@@ -137,7 +137,6 @@
//XXX #include "BIF_previewrender.h" // bedlelvel, for struct RenderInfo
#include "BLO_readfile.h"
#include "BLO_undofile.h"
#include "BLO_readblenfile.h" // streaming read pipe, for BLO_readblenfile BLO_readblenfilememory
#include "readfile.h"

View File

@@ -27,11 +27,13 @@
* ***** END GPL LICENSE BLOCK *****
*
*/
/**
* \file BLO_readblenfile.c
* \brief This file handles the loading if .blend files
* \ingroup blo
* \file runtime.c
* \brief This file handles the loading of .blend files embedded in runtimes
* \ingroup blenloader
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -46,90 +48,56 @@
#endif
#include "BLO_readfile.h"
#include "BLO_readblenfile.h"
#include "BLO_runtime.h"
#include "BKE_blender.h"
#include "BKE_report.h"
#include "BKE_utildefines.h"
#include "BLI_blenlib.h"
/** Magic number for the file header */
const char *headerMagic = "BLENDFI";
/**
* \brief Set the version number into the array.
*
* version contains the integer number of the version
* i.e. 227
* array[1] gets set to the div of the number by 100 i.e. 2
* array[2] gets the remainder i.e. 27
*/
void BLO_setversionnumber(char array[4], int version)
{
memset(array, 0, sizeof(char)*4);
array[1] = version / 100;
array[2] = version % 100;
}
/**
* Sets version number using BLENDER_VERSION
* Function that calls the setversionnumber(char[],int) with
* the BLENDER_VERSION constant and sets the resultant array
* with the version parts.
* see BLO_setversionnumber(char[],int).
*/
void BLO_setcurrentversionnumber(char array[4])
{
BLO_setversionnumber(array, BLENDER_VERSION);
}
#ifndef O_BINARY
#define O_BINARY 0
#endif
/* Runtime reading */
static int handle_read_msb_int(int handle) {
static int handle_read_msb_int(int handle)
{
unsigned char buf[4];
if (read(handle, buf, 4)!=4)
if(read(handle, buf, 4) != 4)
return -1;
else
return (buf[0]<<24) + (buf[1]<<16) + (buf[2]<<8) + (buf[3]<<0);
return (buf[0]<<24) + (buf[1]<<16) + (buf[2]<<8) + (buf[3]<<0);
}
int blo_is_a_runtime(char *path) {
int BLO_is_a_runtime(char *path)
{
int res= 0, fd= open(path, O_BINARY|O_RDONLY, 0);
int datastart;
char buf[8];
if (fd==-1)
if(fd==-1)
goto cleanup;
lseek(fd, -12, SEEK_END);
datastart= handle_read_msb_int(fd);
if (datastart==-1)
if(datastart==-1)
goto cleanup;
else if (read(fd, buf, 8)!=8)
else if(read(fd, buf, 8)!=8)
goto cleanup;
else if (memcmp(buf, "BRUNTIME", 8)!=0)
else if(memcmp(buf, "BRUNTIME", 8)!=0)
goto cleanup;
else
res= 1;
cleanup:
if (fd!=-1)
if(fd!=-1)
close(fd);
return res;
}
BlendFileData *
blo_read_runtime(
char *path,
ReportList *reports)
BlendFileData *BLO_read_runtime(char *path, ReportList *reports)
{
BlendFileData *bfd= NULL;
size_t actualsize;
@@ -137,7 +105,8 @@ blo_read_runtime(
char buf[8];
fd= open(path, O_BINARY|O_RDONLY, 0);
if (fd==-1) {
if(fd==-1) {
BKE_reportf(reports, RPT_ERROR, "Unable to open \"%s\": %s.", path, strerror(errno));
goto cleanup;
}
@@ -147,16 +116,20 @@ blo_read_runtime(
lseek(fd, -12, SEEK_END);
datastart= handle_read_msb_int(fd);
if (datastart==-1) {
if(datastart==-1) {
BKE_reportf(reports, RPT_ERROR, "Unable to read \"%s\" (problem seeking)", path);
goto cleanup;
} else if (read(fd, buf, 8)!=8) {
}
else if(read(fd, buf, 8)!=8) {
BKE_reportf(reports, RPT_ERROR, "Unable to read \"%s\" (truncated header)", path);
goto cleanup;
} else if (memcmp(buf, "BRUNTIME", 8)!=0) {
}
else if(memcmp(buf, "BRUNTIME", 8)!=0) {
BKE_reportf(reports, RPT_ERROR, "Unable to read \"%s\" (not a blend file)", path);
goto cleanup;
} else {
}
else {
//printf("starting to read runtime from %s at datastart %d\n", path, datastart);
lseek(fd, datastart, SEEK_SET);
bfd = blo_read_blendafterruntime(fd, path, actualsize-datastart, reports);
@@ -164,7 +137,7 @@ blo_read_runtime(
}
cleanup:
if (fd!=-1)
if(fd!=-1)
close(fd);
return bfd;

View File

@@ -1,87 +0,0 @@
/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*
*/
#ifndef BLO_READBLENFILE_H
#define BLO_READBLENFILE_H
/** \file BLO_readblenfile.h
* \ingroup blo
*/
#ifdef __cplusplus
extern "C" {
#endif
struct ReportList;
BlendFileData *
BLO_readblenfilename(
char *fileName,
struct ReportList *reports);
BlendFileData *
BLO_readblenfilehandle(
int fileHandle,
struct ReportList *reports);
BlendFileData *
BLO_readblenfilememory(
char *fromBuffer,
int fromBufferSize,
struct ReportList *reports);
void
BLO_setcurrentversionnumber(
char array[4]);
void
BLO_setversionnumber(
char array[4],
int version);
int
blo_is_a_runtime(
char *file);
BlendFileData *
blo_read_runtime(
char *file,
struct ReportList *reports);
#define BLO_RESERVEDSIZE 12
extern const char *headerMagic;
#ifdef __cplusplus
}
#endif
#endif /* BLO_READBLENFILE_H */

View File

@@ -1,42 +0,0 @@
# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# The Original Code is Copyright (C) 2006, Blender Foundation
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): Jacques Beaurain.
#
# ***** END GPL LICENSE BLOCK *****
set(INC
.
../blenloader
../blenloader/intern
../blenkernel
../blenlib
../makesdna
)
set(SRC
intern/BLO_readblenfile.c
BLO_readblenfile.h
)
blender_add_lib(bf_readblenfile "${SRC}" "${INC}")

View File

@@ -1,8 +0,0 @@
#!/usr/bin/python
Import ('env')
sources = env.Glob('intern/*.c')
incs = '. ../blenloader ../blenloader/intern ../blenkernel ../blenlib ../makesdna'
env.BlenderLib ( 'bf_readblenfile', sources, Split(incs), [], libtype=['core','player'], priority = [0,5] )

View File

@@ -1,97 +0,0 @@
/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*
*/
/** \file blender/readblenfile/stub/BLO_readblenfileSTUB.c
* \ingroup blo
*/
#include <stdio.h>
int BLO_readblenfilememory( char *fromBuffer, int fromBufferSize);
int BLO_readblenfilename( char *fileName);
int BLO_readblenfilehandle( int fileHandle);
int BLO_is_a_runtime( char *file);
int BLO_read_runtime( char *file);
int
BLO_readblenfilememory(
char *fromBuffer, int fromBufferSize)
{
#if defined(DEBUG)
fprintf(stderr,
"Error BLO_readblenfilename is a stub\n");
#endif
return(1);
}
int
BLO_readblenfilename(
char *fileName)
{
#if defined(DEBUG)
fprintf(stderr,
"Error BLO_readblenfilename is a stub\n");
#endif
return(1);
}
int
BLO_readblenfilehandle(
int fileHandle)
{
#if defined(DEBUG)
fprintf(stderr,
"Error BLO_readblenfilehandle is a stub\n");
#endif
return(1);
}
int
BLO_is_a_runtime(
char *file)
{
#if defined(DEBUG)
fprintf(stderr,
"Error BLO_is_a_runtime is a stub\n");
#endif
return 0;
}
int
BLO_read_runtime(
char *file)
{
#if defined(DEBUG)
fprintf(stderr,
"Error BLO_read_runtime is a stub\n");
#endif
return 0;
}

View File

@@ -127,7 +127,6 @@ endif()
extern_openjpeg
extern_redcode
bf_imbuf_dds
bf_readblenfile
bf_dna
ge_videotex
bf_blenfont

View File

@@ -771,7 +771,6 @@ endif()
bf_imbuf_cineon
bf_imbuf_openexr
bf_imbuf_dds
bf_readblenfile
bf_collada
bf_intern_bsp
bf_intern_bop

View File

@@ -39,7 +39,6 @@ set(INC
../../../../source/blender/blenfont
../../../../source/blender/blenlib
../../../../source/blender/blenkernel
../../../../source/blender/readblenfile
../../../../source/blender
../../../../source/blender/makesdna
../../../../source/blender/makesrna

View File

@@ -67,7 +67,7 @@ extern "C"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
#include "BLO_readfile.h"
#include "BLO_readblenfile.h"
#include "BLO_runtime.h"
#include "IMB_imbuf.h"
#include "BKE_text.h"
@@ -313,8 +313,8 @@ static BlendFileData *load_game_data(char *progname, char *filename = NULL, char
BKE_reports_init(&reports, RPT_STORE);
/* try to load ourself, will only work if we are a runtime */
if (blo_is_a_runtime(progname)) {
bfd= blo_read_runtime(progname, &reports);
if (BLO_is_a_runtime(progname)) {
bfd= BLO_read_runtime(progname, &reports);
if (bfd) {
bfd->type= BLENFILETYPE_RUNTIME;
strcpy(bfd->main->name, progname);
@@ -444,7 +444,7 @@ int main(int argc, char** argv)
U.audiochannels = 2;
/* if running blenderplayer the last argument can't be parsed since it has to be the filename. */
isBlenderPlayer = !blo_is_a_runtime(argv[0]);
isBlenderPlayer = !BLO_is_a_runtime(argv[0]);
if (isBlenderPlayer)
validArguments = argc - 1;
else

View File

@@ -22,7 +22,6 @@ incs = ['.',
'#source/blender/blenfont',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender/readblenfile',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',