- print r' switch (retrace::driver) {'
- print r' case retrace::DRIVER_HARDWARE:'
- print r' DriverType = %s_HARDWARE;' % enum
- print r' Software = NULL;'
- print r' break;'
- print r' case retrace::DRIVER_SOFTWARE:'
- print r' pAdapter = NULL;'
- print r' DriverType = %s_WARP;' % enum
- print r' Software = NULL;'
- print r' break;'
- print r' case retrace::DRIVER_REFERENCE:'
- print r' pAdapter = NULL;'
- print r' DriverType = %s_REFERENCE;' % enum
- print r' Software = NULL;'
- print r' break;'
- print r' case retrace::DRIVER_NULL:'
- print r' pAdapter = NULL;'
- print r' DriverType = %s_NULL;' % enum
- print r' Software = NULL;'
- print r' break;'
- print r' case retrace::DRIVER_MODULE:'
- print r' pAdapter = NULL;'
- print r' DriverType = %s_SOFTWARE;' % enum
- print r' Software = LoadLibraryA(retrace::driverModule);'
- print r' if (!Software) {'
- print r' retrace::warning(call) << "failed to load " << retrace::driverModule << "\n";'
- print r' }'
- print r' break;'
- print r' default:'
- print r' assert(0);'
- print r' /* fall-through */'
- print r' case retrace::DRIVER_DEFAULT:'
- print r' if (DriverType == %s_SOFTWARE) {' % enum
- print r' Software = LoadLibraryA("d3d10warp");'
+ # This can only work when pAdapter is NULL. For non-NULL pAdapter we
+ # need to override inside the EnumAdapters call below
+ print r' if (pAdapter == NULL) {'
+ print r' switch (retrace::driver) {'
+ print r' case retrace::DRIVER_HARDWARE:'
+ print r' DriverType = %s_HARDWARE;' % enum
+ print r' Software = NULL;'
+ print r' break;'
+ print r' case retrace::DRIVER_SOFTWARE:'
+ print r' DriverType = %s_WARP;' % enum
+ print r' Software = NULL;'
+ print r' break;'
+ print r' case retrace::DRIVER_REFERENCE:'
+ print r' DriverType = %s_REFERENCE;' % enum
+ print r' Software = NULL;'
+ print r' break;'
+ print r' case retrace::DRIVER_NULL:'
+ print r' DriverType = %s_NULL;' % enum
+ print r' Software = NULL;'
+ print r' break;'
+ print r' case retrace::DRIVER_MODULE:'
+ print r' DriverType = %s_SOFTWARE;' % enum
+ print r' Software = LoadLibraryA(retrace::driverModule);'