100% found this document useful (6 votes)
36 views

Download DirectX 8 and Visual Basic Development Keith Sink ebook All Chapters PDF

DirectX

Uploaded by

dhensnagul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (6 votes)
36 views

Download DirectX 8 and Visual Basic Development Keith Sink ebook All Chapters PDF

DirectX

Uploaded by

dhensnagul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

Download Full ebookname - Read Now at ebookname.

com

DirectX 8 and Visual Basic Development Keith Sink

https://ebookname.com/product/directx-8-and-visual-basic-
development-keith-sink/

OR CLICK BUTTON

DOWLOAD EBOOK

Discover More Ebook - Explore Now at ebookname.com


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Visual Basic Game Programming with DirectX 1st Edition


Jonathan S. Harbour

https://ebookname.com/product/visual-basic-game-programming-with-
directx-1st-edition-jonathan-s-harbour/

ebookname.com

Ableton Live 8 and Suite 8 Keith Robinson

https://ebookname.com/product/ableton-live-8-and-suite-8-keith-
robinson/

ebookname.com

Clearly Visual Basic Programming with Microsoft Visual


Basic 2012 3rd Edition Diane Zak

https://ebookname.com/product/clearly-visual-basic-programming-with-
microsoft-visual-basic-2012-3rd-edition-diane-zak/

ebookname.com

The Clinician s Guide to Pancreaticobiliary Disorders The


Clinician s Guide to GI Series 1st Edition Gregory
Ginsberg Md
https://ebookname.com/product/the-clinician-s-guide-to-
pancreaticobiliary-disorders-the-clinician-s-guide-to-gi-series-1st-
edition-gregory-ginsberg-md/
ebookname.com
Python Programming for Biology Bioinformatics and Beyond
1st Edition Tim J. Stevens

https://ebookname.com/product/python-programming-for-biology-
bioinformatics-and-beyond-1st-edition-tim-j-stevens/

ebookname.com

Mahdis and Millenarians Shi ite Extremists in Early Muslim


Iraq 1st Edition William Frederick Tucker

https://ebookname.com/product/mahdis-and-millenarians-shi-ite-
extremists-in-early-muslim-iraq-1st-edition-william-frederick-tucker/

ebookname.com

Soil Erosion and Sediment Redistribution in River


Catchments Measurement Modelling and Management Cabi
Publishing First Edition P. N. Owens
https://ebookname.com/product/soil-erosion-and-sediment-
redistribution-in-river-catchments-measurement-modelling-and-
management-cabi-publishing-first-edition-p-n-owens/
ebookname.com

Prepositions in Their Syntactic Semantic and Pragmatic


Context 1st Edition Susanne Feigenbaum (Ed.)

https://ebookname.com/product/prepositions-in-their-syntactic-
semantic-and-pragmatic-context-1st-edition-susanne-feigenbaum-ed/

ebookname.com

Truth in Nonfiction Essays 1st Edition David Lazar

https://ebookname.com/product/truth-in-nonfiction-essays-1st-edition-
david-lazar/

ebookname.com
Symmetry 1st Edition Gracia Arredondo

https://ebookname.com/product/symmetry-1st-edition-gracia-arredondo/

ebookname.com
DirectX 8 and Visual Basic
Development
Keith Sink

800 East 96th Street, Indianapolis, Indiana, 46240 USA


ASSOCIATE PUBLISHER
DirectX 8 and Visual Basic Linda Engelman
Development ACQUISITIONS EDITOR
Sondra Scott
Copyright © 2002 by Sams Publishing
All rights reserved. No part of this book shall be reproduced, stored in a DEVELOPMENT EDITOR
retrieval system, or transmitted by any means, electronic, mechanical, photo- Nancy E. Sixsmith
copying, recording, or otherwise, without written permission from the pub- MANAGING EDITOR
lisher. No patent liability is assumed with respect to the use of the information Charlotte Clapp
contained herein. Although every precaution has been taken in the preparation
of this book, the publisher and author assume no responsibility for errors or PROJECT EDITOR
omissions. Nor is any liability assumed for damages resulting from the use of Heather McNeill
the information contained herein.
COPY EDITOR
International Standard Book Number: 0-672-32225-0 Lisa M. Lord
Library of Congress Catalog Card Number: 10-89223 INDEXER
Printed in the United States of America Sandy Henselmeier

First Printing: November 2001 PROOFREADER


04 03 02 01 4 3 2 1 Andrea Dugan

TECHNICAL EDITORS
Trademarks Andrew Indovina
All terms mentioned in this book that are known to be trademarks or service Joe Johnston
marks have been appropriately capitalized. Sams Publishing cannot attest to William McLoughlin
the accuracy of this information. Use of a term in this book should not be
TEAM COORDINATOR
regarded as affecting the validity of any trademark or service mark.
Lynne Williams
DirectX, DirectDraw, DirectShow, DirectSound, DirectMusic, DirectPlay,
DirectInput, Direct3D, DirectGraphics, Microsoft, Microsoft Visual Basic, and MEDIA DEVELOPER
Windows are registered trademarks of Microsoft Corporation. Dan Scherf

INTERIOR DESIGNER
Warning and Disclaimer Anne Jones
Every effort has been made to make this book as complete and as accurate as COVER DESIGNER
possible, but no warranty or fitness is implied. The information provided is on Gary Adair
an “as is” basis. The author and the publisher shall have neither liability nor
responsibility to any person or entity with respect to any loss or damages aris- PAGE LAYOUT
ing from the information contained in this book or programs accompanying it. Octal Publishing, Inc.
Contents at a Glance
Introduction

Part I Visual Basic and DirectX Development


1 Fundamentals of DirectX Programming
2 Multimedia Programming in the Visual Basic Environment
3 Animation Techniques

Part II DirectX Graphics Programming


4 Creating Graphics with the DirectX Graphics Object
5 Creating Basic Animations with Surface Objects
6 Palettes and Palette Animation
7 3D Geometry
8 Direct3D
9 Using Direct3D

Part III Monitoring User Input with DirectInput


10 Using DirectInput to Manage User Interactions
11 Action Mapping
12 The Keyboard
13 The Joystick
14 The Mouse

Part IV Adding Music and Sounds with DirectAudio


15 DirectX Audio—DirectMusic and DirectSound
16 Composing Music
17 Adding Sounds to Your Application with DirectSound

Part V Streaming Media with DirectShow


18 Introduction to DirectShow
19 Using DirectShow for Digital Editing
20 Multimedia Players
Part VI Multiuser Strategies with DirectPlay
21 Using DirectPlay to Create Multiplayer Games
22 Using Lobbies to Create Player Interactions
23 Managing Games with DirectPlay
24 Using DirectPlay Voice in Your Application

Part VII Finishing Touches


25 DirectSetup

Part VII Appendix


A VB .NET and DirectX

Index
Table of Contents
Introduction 1
Who This Book Is For? ..........................................................................1
What You Need to Know ........................................................................1
What Hardware and Software You Need ................................................1
How This Book Is Organized ................................................................2
Conventions Used in This Book ............................................................3

PART I VB and DirectX Development 5


1 Introduction to DirectX Programming 7
What Is DirectX? ..................................................................................8
A History ................................................................................................8
The Early Days ..................................................................................8
The DOS Days ..................................................................................9
Along Came Windows ......................................................................9
Then There Was DirectX ................................................................10
Why Visual Basic and DirectX? ..........................................................12
The Evolution of Visual Basic ........................................................12
DirectX for the Masses ....................................................................12
Putting DirectX to Work ......................................................................13
Showcasing Products ......................................................................13
Music and Sound ............................................................................13
User Interactions ..............................................................................14
Screensavers and Multimedia ..........................................................15
Game Programming ........................................................................15
Synchronizing Data ........................................................................15
The DirectX Components ....................................................................16
Summary ..............................................................................................18

2 Multimedia Programming in the Visual Basic Environment 19


Installing DirectX ................................................................................20
Setting Up DirectX for Use in Visual Basic ........................................20
Creating a Reference to the DirectX 8.0 type Library ....................21
Classes and Objects ..............................................................................22
COM ..............................................................................................23
Creating DirectX Objects ................................................................23
Programming Tips to Improve Animation ............................................25
Timers ..............................................................................................25
Execution Loops ..............................................................................27
Error Trapping ................................................................................29
Debugging ......................................................................................30
vi
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

DirectX Utilities ....................................................................................31


DirectX Caps Viewer ......................................................................31
DirectX Error Lookup ....................................................................31
DirectX Texture Tool ......................................................................32
DMO Test Tool ................................................................................32
Force Feedback Editor ....................................................................33
GraphEdit Tool ................................................................................34
Kill Help Utility ..............................................................................35
Mesh Viewer Tool ............................................................................35
Compiling for Speed: Tips and Tricks ..................................................35
Remove Unused Subroutines ..........................................................36
Remove Unused Variables ..............................................................36
Reduce Access Times ......................................................................36
Destroy All Objects ........................................................................36
Remove Debug Statements ..............................................................36
Add DoEvents ................................................................................37
Summary ..............................................................................................37

3 Animation Techniques 39
The Basics ............................................................................................40
The Model Sheet ............................................................................40
The Frame ........................................................................................40
The Cycle ........................................................................................41
Storyboards ......................................................................................41
Keyframes ........................................................................................42
Backgrounds ....................................................................................42
DirectX Objects ....................................................................................43
Frame Rates ....................................................................................43
Blits ..................................................................................................43
Sprites ..............................................................................................44
Drawing Surfaces ............................................................................45
Palettes ............................................................................................45
Rectangles ........................................................................................46
Clippers ............................................................................................46
Billboards ........................................................................................47
Techniques ............................................................................................48
Blitting ............................................................................................48
Page Flipping and Back Buffering ..................................................48
Palette Cycling ................................................................................49
Summary ..............................................................................................50
vii
CONTENTS

PART II DirectX Graphics Programming 51


4 Creating Graphics with DirectDraw 53
Creating Graphics with DirectDraw Classes ........................................54
What Is DirectDraw? ......................................................................54
DirectDraw Architectural Overview ................................................55
HAL Versus HEL ..................................................................................62
Display Modes ......................................................................................63
Standard Display Modes ................................................................64
An Example Using the DirectDraw Class ............................................65
Summary ..............................................................................................68

5 Creating Basic Animations 71


Surfaces ................................................................................................72
Creating Surfaces ............................................................................72
Creating Surfaces from Files ..........................................................74
Surface Descriptions ........................................................................75
Flipping Surfaces ............................................................................77
Blitting to a Surface ........................................................................79
The Many Forms of the BLIT Routine ..........................................79
Gamma and Color Controls ..................................................................82
Overlay Surfaces ..................................................................................83
A DirectDrawSurface Example ............................................................85
Summary ..............................................................................................88

6 Palettes and Palette Animation 91


Palettes ................................................................................................92
Palette Types ....................................................................................92
Palette Entries ..................................................................................92
Sharing Palettes ..............................................................................93
Palette Animation ..................................................................................95
Modifying the Palette ......................................................................96
Switching Palettes ..........................................................................97
A DirectDrawPalette Example ..........................................................100
Summary ............................................................................................101

7 3D Geometry 103
3D Space Coordinate System ............................................................104
3D Objects ..........................................................................................105
Vertices ..........................................................................................106
Polygons ........................................................................................106
Faces ..............................................................................................107
Mesh ..............................................................................................107
Texture ..........................................................................................109
viii
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

Lights ............................................................................................109
Materials ........................................................................................109
Matrices ..............................................................................................111
Projection Matrix ..........................................................................112
View Matrix ..................................................................................112
World Matrix (World Transformation) ..........................................112
Summary ............................................................................................112

8 Direct3D 115
Direct3D Objects ................................................................................116
The Direct3D8 Class ....................................................................116
The Direct3DBaseTexture8 Class ................................................117
The Direct3DCubeTexture8 Class ................................................118
The Direct3DDevice8 Class ..........................................................119
The Direct3DIndexBuffer8 Class ..................................................123
The Direct3DResource8 Class ......................................................124
The Direct3DSurface8 Class ........................................................125
The Direct3DSwapChain8 Class ..................................................126
The Direct3DTexture8 Class ........................................................126
The Direct3DVertexBuffer8 Class ................................................127
The Direct3DVolume8 Class ........................................................127
The Direct3DVolumeTexture8 Class ............................................128
Creating 3D Applications ..................................................................129
Creating a Direct3D Application ..................................................129
Working with Vertices ..................................................................133
Working with Matrices ..................................................................137
Working with Lights ......................................................................142
Working with Textures ..................................................................146
Working with Meshes ....................................................................149
Summary ............................................................................................153

9 Using Direct3D 155


2D Graphics with Direct3D ................................................................156
Declaring the Objects ....................................................................156
Initializing the Environment ..........................................................157
Creating the Background Vertices ................................................159
Drawing to the Screen ..................................................................161
Updating the Bee’s Coordinates ....................................................162
Creating a Billboard Application ........................................................163
Declaring the Objects ....................................................................163
Initializing the Environment ..........................................................165
Rendering the Scene ......................................................................168
Manipulating Vectors and Vertices ................................................171
Summary ............................................................................................173
ix
CONTENTS

PART III Monitoring User Input with DirectInput 175


10 Using DirectInput to Manage User Interactions 177
Obtaining User Input from DirectInput ..............................................178
Objects in DirectInput ..................................................................179
Cooperative Levels ......................................................................180
DirectInput Architectural Overview ..................................................180
The DirectInput Class ....................................................................181
The DirectInputDevice Class ........................................................183
The DirectInputDeviceObjectInstance Class ................................185
The DirectInputDeviceInstance Class ..........................................186
The DirectInputEffect Class ..........................................................187
The DirectInputEnumEffects Class ..............................................189
DirectInput Technologies and Components ......................................190
Action Mapping ............................................................................190
Force Feedback ..............................................................................190
The Keyboard Component ............................................................191
Joysticks, Yokes, and Steering Wheels ..........................................191
The Mouse Component ................................................................191
Summary ............................................................................................191

11 Action Mapping 193


Managing User Input with Action Maps ............................................194
Preparing the Action Map ............................................................195
Configuring the Action Map ........................................................200
Summary ............................................................................................204

12 The Keyboard 205


Retrieving User Input from the Keyboard ..........................................206
Creating Your Objects ..................................................................206
Setting the Keyboard Parameters ..................................................206
Accessing the Keyboard ................................................................207
Retrieving Immediate Data from the Keyboard ............................207
Two Methods of Analysis ..............................................................214
The Keyboard Example ......................................................................215
Summary ............................................................................................217

13 The Joystick 219


Retrieving User Input from the Joystick ............................................220
Creating Your Objects ..................................................................220
Getting the Joystick Capabilities ..................................................222
Setting Joystick Device Properties ................................................223
Dead Zones ....................................................................................224
Using the Joystick ........................................................................225
Force Feedback ..................................................................................227
Force-Feedback Effects ................................................................228
Force Feedback Properties ............................................................228
The Joystick Example ........................................................................228
Summary ............................................................................................236

14 The Mouse 237


Retrieving User Input from the Mouse ..............................................238
Creating Your Objects ..................................................................238
Setting the Buffer Size ..................................................................239
Event Notification ........................................................................239
Considerations for DirectInput Use of the Mouse ............................240
Retrieving the Mouse Data ............................................................241
Analyzing the DIDEVICEOBJECTDATA Variable ....................241
Immediate Data ..................................................................................244
Summary ............................................................................................244

PART IV Adding Music and Sounds with DirectAudio 245


15 DirectX Audio—DirectMusic and DirectSound 247
What Is DirectMusic? ........................................................................248
DirectMusic Architectural Overview ............................................248
DirectMusic Classes ......................................................................249
What Is DirectSound? ........................................................................250
DirectSound Architectural Overview ............................................251
DirectSound Classes ......................................................................252
Objects for Sound Effects ............................................................253
Sound Buffers ................................................................................254
DirectSound 3D ............................................................................254
When Should I Use DirectSound Versus DirectMusic? ....................256
Summary ............................................................................................256

16 Composing Music 257


The Loader Object ..............................................................................258
Using the DirectMusic Loader Object ..........................................258
The Performance Object ....................................................................259
Using the DirectMusic Performance Object ................................259
The Segment Object ..........................................................................263
Using the DirectMusic Segment Object ........................................263
The Audio Parameter Structure ..........................................................264
Using the DirectMusic Audio Parameter Type ............................264
The Band Object ................................................................................265
Using the DirectMusic Band Object ............................................265
Modifying the Performance ................................................................265
Volume ..........................................................................................266
Tempo ............................................................................................266
A DirectMusic Example ....................................................................266
Declaring the Variables ..................................................................267
Initializing the Performance ..........................................................267
Using the Loader Object ..............................................................267
Using the Segment Object ............................................................268
Using the Performance Object ......................................................268
DirectMusic Producer ........................................................................268
Summary ............................................................................................269

17 Adding Sounds to Your Application with DirectSound 271


The DirectSound8 Object ..................................................................272
Using the DirectSound8 Object ....................................................272
Buffers ................................................................................................273
Primary Sound Buffer ..................................................................273
Secondary Sound Buffer ..............................................................273
The DirectSound Buffer Descriptor ..................................................274
Buffer Descriptor Members ..........................................................275
Creating the DirectSound Buffer Descriptor
(DSBUFFERDESC) ..................................................................275
Using the Sound Buffers ....................................................................277
Enumerating the Sound Driver ......................................................277
Creating the Sound Buffer ............................................................277
Loading the Buffer ........................................................................278
Playing the Buffer ........................................................................278
Modifying the Sound Buffer ..............................................................279
Frequency ......................................................................................279
Panning ..........................................................................................279
Volume ..........................................................................................279
Example ........................................................................................279
Recording ............................................................................................280
Creating the Capture Object ..........................................................280
Creating the Capture Buffer ..........................................................280
Recording ......................................................................................281
Converting the Buffer ....................................................................282
Saving the File ..............................................................................283
DirectSound3D ..................................................................................283
Coordinates ....................................................................................283
Distances ........................................................................................284
The 3D Buffer ..............................................................................284
The 3D Listener ............................................................................285
Summary ............................................................................................286
PART V Streaming Media with DirectShow 287
18 Introduction to DirectShow 289
Uses for DirectShow ..........................................................................290
Objects in DirectShow ........................................................................290
Filter ..............................................................................................290
Filter Graph ..................................................................................291
Pin ..................................................................................................291
DirectShow Architecture ....................................................................291
Supported Media Formats and Codecs ..............................................293
Creating a Reference to the ActiveMovie Type Library ....................295
Summary ............................................................................................296

19 Using DirectShow for Digital Editing 297


DirectShow Editing Services (DES) ..................................................298
The AMTimeLine Class ................................................................298
The AMTimelineComp Class ........................................................299
The AMTimelineEffect Class ........................................................300
The AMTimelineGroup Class ......................................................300
The AMTimelineObj Class ..........................................................301
The AMTimelineSrc Class ............................................................302
The AMTimelineTrack Class ........................................................303
The AMTimelineTrans Class ........................................................303
The IAMErrorLog Class ..............................................................304
The IAMSetErrorLog Class ..........................................................304
The IAMTimelineEffectable Class ................................................304
The IAMTimelineSplittable Class ................................................305
The IAMTimelineTransable Class ................................................305
The IAMTimelineVirtualTrack Class ............................................306
The IEnumFilters Class ................................................................306
The IEnumMediaTypes Class ......................................................306
The IEnumPins Class ....................................................................306
The IErrorLog Class ......................................................................306
The IFilterGraph Class ..................................................................307
The IGraphBuilder Class ..............................................................307
The IMediaFilter Class ..................................................................308
The IMediaSample Class ..............................................................309
The IPersistStream Class ..............................................................309
The IPin Class ..............................................................................310
The IReferenceClock Class ..........................................................310
The ISmartRenderEngine Class ....................................................311
The MediaDet Class ......................................................................311
The MediaLocator Class ..............................................................312
The RenderEngine Class ..............................................................312
The SmartRenderEngine Class ......................................................313
The Xml2Dex Class ......................................................................313
Summary ............................................................................................313

20 Multimedia Players 315


The ActiveMovie DLL ........................................................................316
The FilgraphManager Object ........................................................316
The IAMCollection Class ..............................................................316
The IAMStats Class ......................................................................317
The IBasicAudio Class ..................................................................317
The IBasicVideo Class ..................................................................317
The IBasicVideo2 Class ................................................................319
The IDeferredCommand Class ......................................................319
The IFilterInfo Object ..................................................................319
The IMediaEvent Object ..............................................................320
The IMediaEventEx Object ..........................................................320
The IMediaPosition Object ..........................................................321
The IMediaTypeInfo Object ..........................................................321
The IPinInfo Object ......................................................................321
The IQueueCommand Class ..........................................................322
The IRegFilterInfo Object ............................................................322
The IVideoWindow Class ..............................................................323
An Example Using the ActiveMovie DLL ........................................324
Microsoft Web DVD Control ............................................................330
The DVDRect Class ......................................................................330
The MSDVDAdm Class ................................................................331
The MSWebDVD Class ................................................................332
Summary ............................................................................................336

PART VI Multiuser Strategies with DirectPlay 337


21 Using DirectPlay to Create Multiplayer Games 339
A DirectPlay Primer ..........................................................................340
Service Provider ............................................................................340
Connection ....................................................................................341
Session ..........................................................................................341
Player ............................................................................................341
Group ............................................................................................341
Host ................................................................................................341
Message ........................................................................................342
Network Providers ........................................................................342
System Messages ..........................................................................343
xiv
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

Lobby ............................................................................................343
GUID ............................................................................................343
Communication Models ......................................................................344
Peer-to-Peer ..................................................................................344
Client/Server ..................................................................................344
DirectPlay Events ..............................................................................346
A DirectPlay Peer-to-Peer Client ......................................................346
Assigning a GUID ........................................................................346
Initializing the DirectPlay Peer-to-Peer Client ............................346
Finding the Available Service Providers ......................................347
Finding the Game Host ................................................................347
Connecting to the Session ............................................................347
Managing the Session ....................................................................348
Sending Messages ........................................................................348
Closing the Session ......................................................................348
A DirectPlay Client/Server Connection ............................................349
Assigning a GUID ........................................................................349
Initializing the DirectPlay Client/Server Client ............................349
Finding the Available Service Providers ......................................349
Finding the Game Host ................................................................350
Connecting to the Session ............................................................350
Managing the Session ....................................................................350
Sending Messages ........................................................................351
Closing the Session ......................................................................351
Summary ............................................................................................351

22 Using Lobbies to Create Player Interaction 353


Lobby Architecture ............................................................................354
Lobby Servers ....................................................................................355
Lobby Clients ......................................................................................356
The DirectPlay8LobbyClient Class ..............................................357
DirectPlay Lobbied Application ........................................................357
The DirectPlay8LobbiedApplication Class ..................................358
DirectPlay Lobby Event ....................................................................358
The DirectPlay8LobbyEvent Class ..............................................359
Summary ............................................................................................359

23 Managing Games with DirectPlay 361


DirectPlay Concepts ..........................................................................362
DirectPlay Architecture ......................................................................363
Using the DirectPlay8Address Class ............................................363
Using the DirectPlay8Client Class ................................................366
xv
CONTENTS

Using the DirectPlay8Event Class ................................................367


Using the DirectPlay8Peer Class ..................................................369
Using the DirectPlay8Server Class ..............................................371
Summary ............................................................................................373

24 Using DirectPlay Voice in Your Application 375


DirectPlay Concepts ..........................................................................376
Voice Session ................................................................................376
Transmission Target ......................................................................376
DirectPlay Voice Architecture ............................................................377
Using the DirectPlayVoiceClient8 Class ......................................378
Using the DirectPlayVoiceEvent8 Class ......................................379
Using the DirectPlayVoiceServer8 Class ......................................380
Using the DirectPlayVoiceTest8 Class ..........................................381
Using DirectPlay Voice ......................................................................381
DirectPlay Voice on a Peer-to-Peer Connection ............................381
DirectPlay Voice on a Forwarding Server Connection ................382
DirectPlay Voice on a Mixing Server Session ..............................382
Summary ............................................................................................382

PART VII Finishing Touches 383


25 DirectSetup 385
Working with the DirectXSetup Libraries ..........................................386
Initializing the DirectXSetup Functions ........................................386
Using the DirectXSetupGetVersion Function ..............................387
Using the DirectXSetup Function ................................................388
Using the Package and Deployment Wizard ......................................389
Creating the Setup Package ..........................................................389
A Little Voodoo ............................................................................393
Deploying the Setup ......................................................................394
Alternatives to the Package and Deployment Wizard ........................395
Summary ............................................................................................395

PART VIII Appendix 397


A VB .NET and DirectX 399
Setting Up DirectX for Use in VB .NET ..........................................400
Converting the DirectX DLLs to VB .NET Format ......................400
Creating a Reference to the DirectX 8 Type Library ....................400
Debugging Your Code in VB .NET ....................................................403
Error Trapping in VB .NET ..........................................................403
New Debugging Features of VB .NET ........................................404

Index 405
About the Author
Keith Sink is a Senior Technical Engineer for Capital Stream, a financial software company in
Seattle, WA, where he has been involved in the design, development, and architecture of a
number of successful applications. Keith has been a professional software developer for six
years and an MCP since 1994, has taught numerous VB training courses, and has beta-tested
Microsoft’s DirectX since version 2.0. Keith has been animating and writing video games
since the TRS-80 programming days in the early 1980s, and enjoys restoring classic video
games. While working with Microsoft, Keith contributed to Office 97 Help content as well as
content for the Word and PowerPoint Answer Wizards.
About the Technical Editors
Andrew J. Indovina is currently a software developer living in Rochester, NY. With a degree
in computer science, he has a wide programming background. Andy has co-authored two
books based on Visual Basic 6 and Visual C++, respectively.
Joseph Johnston is currently a technical specialist for Cendant Corporation. He uses VB,
VFP5 and 6, SQL Server, MTS/COM+, and VC++ on a daily basis. Joe also creates solutions
or utilities for acute issues with data and software systems using the tool that makes the most
sense.
William McLoughlin is currently a software developer for a major pharmaceutical company.
Bill has a degree in computer information systems technologies. He lives in Long Valley, NJ
with his wife Jennifer and their sons Liam and Owen.
Dedication
In memory of my parents: Wade and Janet.

And to the woman who always inspires me: Michelle.


Acknowledgments
I want to thank Dwayne Gifford and Mary Hutson for their support and advice on doing this
book. I would also like to thank my friend and favorite critic Jeff Lemkin, for his incredible
help with my initial edits.
To my family and friends who supported me in this endeavor, thank you for your patience and
your encouraging words. Thank you Mike, Kim, and Stacy.
No book can be completed without the support of a great supporting staff. And that’s exactly
what I had. Sondra Scott, Nancy Sixsmith, Heather McNeill, Lisa Lord, Linda Engelman,
Andrew Indovina, Joe Johnston, William McLoughlin, and the rest of the Sams editors and
staff: Thank you.
I would also like to thank the support that I received from the DirectX beta team and the
Yahoo! VB and DirectX support group.
Thanks also to the following people who reviewed the original table of contents and proposal:
Joel Rosenblatt, Columbia University, Manager Mainframe Systems, AcIS; Eric Smith, Owner,
Northstar Computer Systems; Mike Snell, Chief Software Architect, Acclarant, Inc.; and Larry
Wall, Team Leader Microsoft Group, Synapse Technology.
Tell Us What You Think!
As the reader of this book, you are our most important critic and commentator. We value your
opinion and want to know what we’re doing right, what we could do better, what areas you’d
like to see us publish in, and any other words of wisdom you’re willing to pass our way.
As an associate publisher for Sams, I welcome your comments. You can e-mail or write
me directly to let me know what you did or didn’t like about this book—as well as what we
can do to make our books stronger.
Please note that I cannot help you with technical problems related to the topic of this book,
and that due to the high volume of mail I receive, I might not be able to reply to every
message.
When you write, please be sure to include this book’s title and author as well as your name
and phone or fax number. I will carefully review your comments and share them with the
author and editors who worked on the book.

E-mail: feedback@samspublishing.com

Mail:

Sams Publishing
800 East 96th Street
Indianapolis, IN 46240 USA
Introduction
DirectX and the graphics SDKs, which were its foundation, have been around since the early
days of Windows in one form or another. However, most of us have not been exposed to their
fantastic capabilities. Under the shroud of secrecy, Windows game programmers have carefully
guarded their secrets to protect their investments. This shroud has become transparent in recent
years, though, and now the advanced libraries that used to belong to a select few are available
in a universal library called DirectX. For some years, DirectX was accessible only to C pro-
grammers, but not anymore. DirectX is now available to Visual Basic programmers, and more
and more of them are creating games and multimedia applications.
This world can be quite complex, but also quite exciting. With the ease of use of Visual Basic
and the powerful libraries in DirectX, this combination is a natural marriage of technologies.
This book will take you through understanding DirectX concepts and show you how to create
applications that can make use of this technology. This book will introduce you to what you
need to know, but as with all languages and libraries, practice makes perfect.

Who This Book Is For?


This book is intended for Visual Basic users who have mastered all the basic functionality this
language provides and now want to venture into multimedia programming. This book is not a
game-programming book. It is intended for a much broader audience: the multimedia program-
mer. If you have already read some game programming books and want to know how to use
DirectX to create games in Visual Basic, this book is for you. If you want a book that does not
assume you are a game programmer, this book is for you. If you are a non-multimedia pro-
grammer and just want to know how to use the features of DirectX in your everyday applica-
tions, this book is for you. This book is intended to show how DirectX can be used in the
broad multimedia market, not just with games.

What You Need to Know


You need to have a basic understanding of COM programming in Visual Basic. You also must
understand how to create standard Visual Basic programs. The rest you will learn in this book.

What Hardware and Software You Need


To compile and run the samples in this book and those on the Sams Web site, you will need
the following software programs:
• Windows 2000 or XP
• Visual Basic 6.0
• DirectX 8.1 SDK (this is a free download from Microsoft’s Web site)
2
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

Most of the standard hardware on the market will run the programs in this book. The only
exception is Direct3D applications. If you are going to develop Direct3D applications, you will
need a 3D graphics card.

How This Book Is Organized


This book is organized into easy-to-follow parts, which follow the organization of the
Microsoft DirectX object model. These parts encapsulate the whole DirectX object model into
an easy to read reference.
In Part I, you will learn about the basics of programming in the DirectX and Visual Basic envi-
ronments. You will learn about the basics of DirectX and multimedia programming and how
animation is achieved by using DirectX.
Part II will take you into the details of creating DirectDraw and Direct3D applications. In this
part of the book, you will learn about 2D and 3D graphics and how they can be used in your
applications.
Part III introduces you to DirectInput and explains how joysticks, keyboards, mice and other
input devices are used with DirectX and Visual Basic.
Part IV explains DirectMusic and how it can be used to add sound and music to your applica-
tions. You will learn how DirectSound can add sound effects and voice to your applications.
You will also experience DirectMusic, and learn how it can add a heart-pounding musical
score to your applications.
Part V exposes you to the DirectShow libraries and explains how to create media players and
converters. You will learn how to create a MP3 media player to listen to audio files. You will
also learn how DirectShow can be used to create DVD players and other applications.
Part VI delves into the area of network games. In this part, you will learn about DirectPlay.
You will learn how DirectPlay can be used to add network capabilities to your games and
applications and expand the experience for the user.
Part VII explains how to distribute DirectX through the DirectSetup library. It also explains
how to package and distribute your final application.
Part VIII is the appendix section of the book. Here you will learn about how DirectX 7 and
DirectX 8 can be used with VB .NET and how to take advantages of the debugging capabilities
of VB .NET.
3
INTRODUCTION

Conventions Used in This Book


The following typographic conventions are used in this book:
• Code lines, commands, statements, variables, and any text you type or see onscreen
appears in a mono typeface. Bold mono typeface is often used to represent the user’s
input.
• Placeholders in syntax descriptions appear in an italic mono typeface. Replace the
placeholder with the actual filename, parameter, or whatever element it represents.
• Italics highlight technical terms and terms used for the first time, and are sometimes
used for emphasis.
• The ➥ icon is used before a line of code that is really a continuation of the preceding
line. Sometimes a line of code is too long to fit as a single line on the page. If you see ➥
before a line of code, remember that it’s part of the line immediately above it.
• The book also contains Notes, Tips, and Cautions to help you spot important or useful
information more quickly:

NOTE

Notes present interesting pieces of information related to the discussion at hand.

TIP

Tips offer advice or teach an easier way to do something.

CAUTION

Cautions advise you about potential problems and help you steer clear of disaster.
PART

I
VB and DirectX Development

This section focuses on what DirectX and VB offer the develop-


ment community. Chapter 1, “Fundamentals of DirectX
Programming,” discusses the basis of DirectX and what it offers
and explains multimedia programming with DirectX in the VB
environment. Finally, this section introduces animation tech-
niques that are vital to understanding multimedia programming
in DirectX.

IN THIS PART
1 Introduction to DirectX Programming 7

2 Multimedia Programming in the Visual Basic


Environment 19

3 Animation Techniques 39
Discovering Diverse Content Through
Random Scribd Documents
—De nada servirá nuestro valor —dijo Santorcaz—, si antes no
acabamos con todos los traidores que hay en Madrid.
—Lo mismo digo —afirmó Mortero.
—Por todas partes no se ven sino espías de los franceses, y ahora
es ocasión de que este señor Regidor que aquí tenemos se luzca.
—Así es la verdad —dije yo—. Sé de muchos que se fingen muy
patriotas, y están vendidos a los franceses. Los que hacen más
aspavientos y dan más gritos, y más gallardean de patriotas, son los
peores. ¿No es verdad, Santorcaz?
—Pues acabar con ellos.
—Para eso nos bastamos y nos sobramos —añadió Majoma—. Y
vengan malos patriotas y gabachones, para dar cuenta de ellos.
—Personajes conozco yo —dijo Mañara— que han de mori
arrastrados, si Dios no lo remedia; y si llego a ser Regidor, ya nos
veremos las caras, señores afrancesados.
—Esa es la gente más mala —afirmó Santorcaz con mucho
desparpajo—, más desvergonzada y más traidora que hay; y si no
ponemos mano en ellos, no saldremos bien de esta guerra. Porque yo
sé que hay quien está tramando abrir las puertas de Madrid si nos
ponen asedio.
—Pues despacharlos, y se acabó la junción —dijo Pujitos—. En m
compañía están tan rabiosos, que solo con decir «ese es gabacho», se
le van encima y le quieren despedazar.
—Los peores —repetí yo, teniendo el gusto de que el tío Mano
apoyara enérgicamente mi opinión— son los que chillan y enredan, y
están a todas horas hablando de traidores; y si no, aquí está
Santorcaz, que conoce a la gente y lo puede decir.
—Así es, en efecto —repuso el francmasón algo contrariado—; pero
que hay traidores, no tiene duda.
XI

D. Diego, la Zaina y las otras tres damas, no menos que esta


famosas, habían entablado animada conversación, formando otro
corrillo.
—No se olvide el señor Condito —dijo Menegilda— que nos prometió
traer una noche a su novia.
—Si yo no tengo novia.
—Sí que la tiene. ¿No es verdad, Gabriel, que tiene novia?
—Y más bonita que el sol —respondí acercándome.
—Vamos, la tengo —dijo Rumblar—; pero no la quiero, Zainilla. No
te vayas a poner celosa.
—Ya estoy frita con los tales celos, niño mío —contestó la maja—
Pero ¿por qué no la trae aquí una noche?
—Antes traerá una estrella del cielo —afirmó Mañara, acercándose
al grupo femenino.
—D. Diego me ha prometido traerla, y la traerá —dijo Santorcaz
atraído también por aquel coloquio.
—Sí —indicó Mañara—: la familia de ese señorito iba a permitir que
una tan delicada doncella viniera a estas casas.
—¡A estas casas! —exclamó la Zaina—. ¿Estamos en algún presillo?
Más honrada es mi casa, Sr. D. Juan, que muchas de señoras
amadamadas, por donde usía anda en malos pasos.
—Calla, tonta —dijo Mañara de mal humor.
—Y buenas princesas ha traído usted a esta casa, y a la de la
Pelumbres y de la Primorosa —añadió Ignacia—. Toas semos unas, y
no lo igo por esa duquesa con quien fue hace dos noches en ca la
Pelumbres. Alifonsa, ¿sabes quién es? ¿Te acuerdas de aquella
duquesilla amojamada, que parece un almacén de huesos? Si D. Juan
la trae por aquí, pondremos una fábrica de botones.
—¿Qué hablas ahí, zafiota, animal sin pluma? —gritó Mañara con
vivo arrebato de ira—. Habla mejor si no quieres que con tu lengua
haga una pantufla para azotarte la cara.
—¡A mí con esas el asno Regidor! —vociferó la Zaina—. Después
que le he despreciao, después que he tenido que escupirle en la cara
para que no anduviera tras de mí chupándose la tierra que yo pisaba
¿ahora viene con esa? Con las barbas de un usía friego yo los
cacharros de la cocina, y tripas de caballero le echo a mi gato.
—¡Condenada manola! —dijo Mañara cada vez más colérico—. La
culpa tiene quien te ha dado esas alas y quien con personas bajas se
entretiene. ¿Para qué tomas en tu ruin boca el nombre de señoras
respetables de quien no mereces besar la suela del zapato? ¡Cuidado
con los celitos de la niña!
—¿Celos yo? —chilló la maja más encendida que la grana—. ¡Po
Dios, que me quiera usted, so pringoso: tomelo por estera y se creyó
cortejo!
Y diciendo esto, lanzó un salivazo en medio del corrillo.
—¡Miserable mujerzuela! ¡La culpa tiene quien se arrima a ti, po
hacerte gente siquiera un día!
—¡Eh, eh! poco a poquito —dijo a este punto el tío Mano de
Mortero, que de espectador indiferente de aquella escena se trocaba
en actor de ella—. Eso de mujerzuela es de gente mal hablada, y aqu
no se habla mal de nadie, y lo que es mi hija tiene su siempre y
cuando como cualquier otra. Que el señor D. Juan no nos toque a la
honor, porque a mí no me falta un saco de onzas de oro ensayadas
para apedrear a cualquiera. Y tú, princesa mía, ¿a qué le haces tantos
cocos ahora al Sr. de Mañara, cuando ha pocos días te chiflabas por él
y si alguna noche faltaba su señoría a hacerte compañía o a ayudarte a
rezar el rosario, ponías en el cielo unos suspiros como catedrales?
Anda, que todos son buenos, y váyase lo uno por lo otro.
—¿Suspiritos tenemos? —preguntó Mañara con presunción.
—Y si hubo suspiros —dijo Mortero—, mi hija es una persona de
etiqueta, y los puede echar como cualquiera otra, aunque sea por e
Rey; que si está en el cajón de verduras, es porque quiere, que su
padre ya le ha prometido varias veces ponerla al frente de una casa de
bebidas finas.
—¡Yo suspirar por ese animal! —dijo la Zaina—. Por lástima le he
mirao una vez cuando iba al cajón a echarme flores.
—Eso quisieras tú; pero no se estila echar margaritas a puercos.
La Zaina hizo un movimiento. El demonio fue sin duda quien llevó a
sus irritadas manos una botella de las que en la mesa contigua había
y disparola con tanta fuerza contra Mañara, que a no apartarse este
vivamente, viéramos allí partida en dos la cabeza más dura que ha
gastado Regidor en el mundo. Levantose este furioso para castigar e
descomedimiento de la Zaina; pero con tanta presteza acudió D. Diego
en defensa de la verdulera, que sobre él cayeron los primeros golpes
Lleno de rabia al verse aporreado, arremetió contra Mañara, a punto
que el tío Mano de Mortero empezaba a probar la exactitud de su
apodo, repartiendo algunos puñetazos sobre tirios y troyanos. Las
majas Narcisa, Menegilda y Alifonsa declaráronse también en guerra
por dar gusto a las inquietas manos, y bien pronto de todos los all
presentes no quedó uno que no llevase su óbolo a tal colecta de golpes
y gritos. Era aquello una bendición de Dios, y juro que jamás habría yo
metido mis manos en tal fregado, si no me incitara a ello una caricia
que sentí en mitad de la espalda, hecha por mano desconocida. Y lo
peor fue que Majoma, hombre ingenioso, inclinado siempre a saca
partido de tales alteraciones del orden privado, descargó varios palos
sobre el candil que la escena iluminaba, y al punto nos vimos todos de
un color. Aquí fue el arreciar de los puñetazos, y el esfuerzo de los
gritos, y el rodar unos sobre otros; y si bien el peso de un cuerpo nos
oprimía a veces, también el nuestro caía en humanas blanduras, de
cuyos choques provenían los pellizcos, arañazos y demás proyectiles
menudos. Por aquí se oían voces lastimeras; por allá gritos de
venganza, y sobre toda especie de rumores, descollaba la voz
estentórea del tío Mano de Mortero, diciendo:
—En mi casa no ha de haber escándalos, y el que diga que aquí se
siente el vuelo de una mosca, miente. Vamos, amiguitos: no mete
tanto ruido ni pegar tan recio. Esto es una broma: conque paz y pan, y
divertámonos.
Y a todas estas la vecindad se alborotaba, y en la calle deteníase la
gente curiosa, no porque le hiciera novedad aquel ruido, sino por goza
de él; y se temió la intervención de la justicia, lo cual hería al Sr. Mano
en lo más delicado de su dignidad. Por fin hubo uno que pudo dar con
la puerta y abrirla y echarse fuera, con lo cual, habiendo entrado un
poco de luz, pudimos vernos. Todo indicaba que íbamos a tener una
visita alguacilesca, lo que me impulsó a coger por un brazo a D. Diego
y echarlo conmigo afuera, y bajar a saltos la escalera hasta dar con
nuestros cuerpos en la calle, por la que nos escurrimos sin miedo a la
corchetería.
Cuando nos vimos lejos, acortamos el paso, contemplándonos uno a
otro. D. Diego había padecido más averías que yo en la refriega, y
ostentaba en la cara un verdugón hecho por buena mano.
—¡Maldito de mí! —exclamó tentándose los bolsillos de sus calzones
—. ¿Sabes que me han quitado mis dos relojes? ¡Pues también e
dinero, todo el dinero que llevaba!
—Era de suponer, Sr. D. Diego —le respondí registrándome también
—, pues no salimos de ninguna misa cantada. Y por lo que veo, a m
también me han desplumado.
—¿Te quitaron el reloj?
—No, señor: el reloj no me lo han quitado ni me lo quitarán todos
los cacos del mundo, porque no lo tengo; pero sí perdí un dinerillo
bien poco, por cierto.
—¡Dios mío! Sin relojes, sin dinero... —clamó doloridamente D
Diego—. ¿Con qué compraré ahora las diez y siete varas de cotonía
que quiere la Zaina? ¿Con qué alquilaré el coche para que vaya el lunes
a los novillos? Si Santorcaz no me presta, me moriré.
—Diez y siete varas de fresno, que no de cotonía, es lo que merece
esa gentuza —le contesté—; pues es necesario estar loco o enamorado
para poner los pies en tales casas.
XII

Como antes indiqué, no pude obtener licencia para salir de Madrid


porque la Villa, viéndose pronto en gran aprieto, cayó en la cuenta de
que necesitaba de toda su gente para defenderse. ¿Por qué no me
marché? ¿Quién me lo impidió? ¿Quién torció el camino de m
resolución? ¿Quién había de ser sino aquel que por entonces era e
trastornador de todos los proyectos, el brazo izquierdo del destino, e
que a los grandes y a los pequeños extendía el influjo de su invasora
voluntad? Sí: el baratero de Europa; el destronador de los Borbones y
fabricante de reinos nuevos; el que tenía sofocada a Inglaterra, y
suspensa a la Rusia, y abatida a la Prusia, y amedrentada al Austria, y
oprimida a la hermosa Italia, osó también poner la mano en mi suerte
impidiéndome pasar a otro ejército.
Es, pues, el caso, que el D. Quijote imperial y real, como algunos de
nuestros paisanos le llamaban, no sin fundamento, había entrado en
España a principios de noviembre con ánimos de instalar de nuevo en
Madrid la corte botellesca. A él se le importaba poco que los españoles
llamasen tuerto a su hermano, y fijo en el número y fuerza de nuestros
soldados, no atendía a lo demás. Una vez puesto el pie en tierra de
España, no le agradó mucho que el mariscal Lefebvre ganase la batalla
de Zornoza, porque sabido es que no era de su gusto que se
adquiriese gloria sin su presencia y consentimiento. Mandó, sin
embargo, al Mariscal Víctor que persiguiese a nuestro desgraciado
Blake, cuyas tropas se habían reforzado con las del Marqués de la
Romana, escapadas de Dinamarca, y aquí tienen ustedes la batalla de
Espinosa de los Monteros, dada en los días 10 y 11, y perdida po
nosotros, por más que el Gran Capitán, con más celo que buen
sentido, se empeñe en negarlo. ¡Ay! No hagan ustedes caso de aque
mi honradísimo y entusiasta amigo, y crean a pie juntillas que lo de
Espinosa fue un gran descalabro, aunque no sin gloria para nuestras
hambrientas, desnudas y fatigadas tropas. Valientes oficiales
perecieron allí, y grandes apuros y privaciones pasaron todos, sin un
pedazo de pan que llevar a la boca, ni una venda que poner en sus
heridas.
Así sucumbió el ejército de la izquierda, cuyos restos, salvándose
por las fragosidades de Liébana, recalaron por tierra de Campos, para
ser mandados por el Marqués de la Romana. No fue más dichoso e
ejército de Extremadura en Gamonal, cerca de Burgos, pues Bessières
y Lasalle lo destrozaron también el mismo fatal día 10 de noviembre, y
el 12 entraba en la capital de Castilla el azote del mundo, publicando
allí su traidor decreto de amnistía. Aún nos quedaba un ejército, el de
Centro, que ocupaba la ribera del Ebro por Tudela: mandábalo
Castaños; pero nadie confiaba que allí fuéramos más afortunados
porque una vez abierta la puerta a las calamidades, estas habían de
venir unas tras otras a toda prisa, como suele suceder siempre en e
pícaro mundo. También nos preparaba el cielo en el Ebro otra gran
desgracia; pero a mediados de noviembre, cuando corrieron po
Madrid las tristes nuevas de Espinosa y de Gamonal, aún no se había
dado la batalla de Tudela.
El pánico en Madrid era inmenso, y se creía segura la pronta
presentación del corso en las inmediaciones de la capital. ¿Qué podía
oponérsele? No quedaba más ejército que el del Centro, situado allá
arriba a orillas del Ebro. ¿Quién detendría al invasor en su marcha
terrible? La Junta se desesperaba, y los madrileños creían acudir a
remediar la gravedad de las circunstancias, entusiasmándose. ¡Ay
Después de mandar algunas tropas a los pasos de Somosierra y
Navacerrada, ¿qué ejército de línea quedaba para defender a Madrid?
Da pena el decirlo. Quinientos hombres.
Los paisanos armados eran ciertamente muchos; pero había muy
pocos fusiles, y de estos la mitad resultaban inútiles por falta de
cartuchos; y ¿con qué se hacían los cartuchos, si no había pólvora? A
esto habíamos llegado cuatro meses después de la victoria de Bailén
Todo al revés. Ayer barriendo a los franceses, y hoy dejándonos barrer
ayer poderosos y temibles, y hoy impotentes y desbandados
Contrastes y antítesis propias de la tierra, como el paño pardo, los
garbanzos, el buen vino y el buen humor. ¡Oh, España, cómo se te
reconoce en cualquier parte de tu historia, a donde se fije la vista! Y
no hay disimulo que te encubra, ni máscara que te oculte, ni afeite que
te desfigure, porque a donde quiera que aparezcas, allí se te conoce
desde cien leguas con tu media cara de fiesta, y la otra media de
miseria; con la una mano empuñando laureles, y con la otra
rascándote tu lepra.
—Hola, Gabriel, ¿tú por aquí? —me dijo Pujitos en la Puerta del So
el día 20 de noviembre—. Ya sabes que tenemos de Regidor a nuestro
amigo D. Juan de Mañara. Él es el encargado de la cartuchería. ¿Tienes
fusil?
—Y bueno. ¿Pero todavía no se dice nada de fortificar a Madrid, n
se trata de abrir fosos y levantar parapetos y abrigos, ya que a esta
villa y corte la hicieron sin murallas ni otra defensa alguna?
—Todo eso se hará. Pero lo que más urge es la cartuchería y armas.
—¿Dónde hacen cartuchos?
—En varias partes. Allá junto al Colegio de Niñas de la Paz hay más
de sesenta personas trabajando en ello noche y día.
—Pero de nada nos sirven los cartuchos sin armas, Sr. de Pujitos —
le dije—. Yo conozco muchísimos hombres valientes que no tienen sino
chuzos, pedreñales y espadas llenas de orín.
—Eso será nonada, y si no nos hacen traición...
—¡Traición!
—¡Sí: aquí hay muchos traidores!
—Ahora, como la gente anda tan exaltada, es común llama
traidores a los más leales patriotas.
—Gabriel —dijo deteniéndose en medio de la calle y asomando po
el embozo de su capa un dedo con el cual ciceronianamente acentuaba
sus palabras—, cuando yo lo digo, sabido me lo tengo. ¿Te acuerdas de
lo que se habló hace noches en casa del tío Mano? ¿Te acuerdas cómo
se puso furioso el Sr. de Santorcaz contra los traidores? Pues hemos
descubierto que ese Sr. de Santorcaz o D. Demonio, es espía de
córcego. Velay por qué estaba tan enfoguetado.
—No es la primera vez que lo oigo.

É
—Él les escribe cartas de lo que aquí pasa, y con el dinero que le
dan paga gente alborotadora, que arme querellas entre la tropa. Como
este hay muchos, y se dice que señores muy alcurniados están
vendidos a los franceses. Pero, Gabriel, que se nos amostacen las
narices, y veremos a dónde van a parar. Hay otros que, aunque no son
traidores, son melindrosos, y no quieren lo que llaman Constitución, la
cual se va a poner ahora pa acabar con el espotismo. ¿Sabes tú lo que
es el espotismo? Pues el espotismo es una cosa muy mala, muy mala
A bien que desde que acabamos con Godoy y los lairones que con é
vivían, se acabaron todas las picardías, y ahora, luego que demos fin a
esto del córcego, los reinos de España se van a gobernar de otra
manera, y estaremos tan bien, que no nos cambiaremos por los
ángeles del cielo.
Y diciendo esto, dio media vuelta y marchose lejos de mí a toda
prisa. No tardé yo en acudir pronto a la formación de mi compañía.
Ante las evidentes muestras de alarma que a todas horas se
observaban en Madrid, mal podía el optimismo del Gran Capitán
sostenerse en las ideales regiones donde le hemos visto cernerse
como el águila de la patria a quien ni el peligro ni el miedo pueden
obligar a abatir su majestuoso vuelo. Ya no era posible negar la derrota
de Espinosa, ni tampoco la de Gamonal, y solo los locos podrían
suponer a Napoleón dispuesto a detenerse en su victorioso camino
Muchos días resistiose el fuerte espíritu de mi amigo a la evidencia de
tantos descalabros; por muchos días sostuvo que nuestras armas
victoriosas echarían a los franceses con su malhadado Emperador de
otro lado del Bidasoa; por muchos días continuó atribuyendo a los
papeles públicos la pérfida invención de aquellos absurdos
acontecimientos que no cabían en su homérica cabeza; pero al fin la
muchedumbre de las noticias malas, la agitación pública, el pánico de
todos, la general zozobra, y el tumulto y laberinto de los preparativos
de defensa rindieron golpe tras golpe el formidable castillo de su
terquedad, dando en tierra con tantas ilusiones. El héroe no aparentó
desmayar con esto, antes bien se reía tomando la cosa como una
fiesta. Lleno de confianza en la capital, siempre negaba que Napoleón
se atreviese a ponerse delante de los madrileños, y esta fue una
tenacidad que le duró contra viento y marea hasta el 25 de noviembre
en cuya noche, al retirarse a su casa, preguntole Doña Gregoria, como
siempre, las noticias de la tarde:
—Nada, mujer —repuso frotándose las manos, y promulgando con
desdeñosas sonrisas la categórica confianza que llenaba su espíritu—
Nada, mujer: emperadorcito tenemos.
XIII

Y el emperadorcito salió de Burgos el 22; detúvose en Aranda el 24


el 29 estaba en Boceguillas, y, por fin, el 30 llegó a Somosierra.
En Madrid la alarma crecía en tales términos, que ya en 23 de
noviembre se pensaba en una defensa formal, guarneciendo el circuito
de la Corte para hacer de ella, con el valor de sus habitantes, una
segunda Zaragoza. Era Capitán general de Castilla la Nueva el Marqués
de Castelar, y Gobernador de la plaza D. Fernando de la Vera y
Pantoja; pero a este no se le conceptuaba muy entendido en materias
facultativas, y como se tratara de obras de defensa, fue nombrado para
el caso el célebre D. Tomás de Morla, sucesor de Solano en Cádiz cinco
meses antes; hombre feísimo de rostro, de carácter aparentemente
enérgico, aunque en realidad muy débil. Gozaba en el conocimiento de
la artillería de gran reputación, que aún conserva, pues sus estudios
sirven hoy para la enseñanza de la juventud que a la guerra científica
se consagra.
Morla dirigió las obras de defensa, que consistían en grandes fosos
abiertos fuera de las puertas de Fuencarral, Santa Bárbara, Los Pozos
Atocha y Recoletos; en aspillerar toda la muralla de la parte Norte; en
desempedrar las calles de Alcalá, Carrera de San Jerónimo y calle de
Atocha para levantar barricadas, y, por último, en fortificar el Retiro
con trincheras y una mediana artillería, la única que teníamos, pues
todo se reducía a unas cuantas piezas de a 6 y poquísimas de a 8. Esto
se hizo precipitadamente a última hora; mas con tanto entusiasmo y
determinación, que la diligencia parecía suplir con creces a la previsión
En las obras trabajaba todo el mundo sin reparos de clase. Las
señoras, no contentas con afiliarse en la Congregación del Lavado y
cosido, dirigieron a las autoridades una exposición en que se ofrecían a
ayudar, ya llevando espuertas de tierra, ya ocupándose en lo que se les
mandase. No es esto invento mío, y la exposición existe impresa
donde el incrédulo podrá verla si aún duda de la grandeza de ánimo de
las señoras de aquel tiempo. Y al decir señoras, se comprende que no
me refiero a aquellas de quienes en otro lugar de este relato tengo
hecha mención, pues las del Rastro y Maravillas tenían especial gusto
en pasearse por todo Madrid arrastrando un cañón entre seguidillas y
chanzonetas: me refiero a las más altas hembras, a quienes v
empleadas en menesteres indignos de sus delicadas manos.
De los hombres no hay que hablar, porque todos trabajábamos a
porfía día y noche, sacando tierra de los fosos para construir los
espaldones de la artillería. En poco tiempo quedó la calle de Alcalá tan
limpia de guijarros como tierra de sembradura, y desde las Baronesas
al Carmen Calzado levantamos un parapeto formidable.
El personal de la defensa era el siguiente:
1.º Quinientos soldados de línea que apenas bastaban para e
servicio de las bocas de fuego. 2.º Las tropas colecticias formadas po
el alistamiento voluntario de 7 de agosto, y a las cuales pertenecía un
servidor de ustedes (no pasábamos de tres mil hombres). 3.º Los
conscriptos pertenecientes a Madrid en el llamamiento de doscientos
cincuenta mil hombres que hizo la Junta, y cuyo sorteo se verificó en
23 de noviembre. 4.º La milicia urbana llamada honrada, que se formó
por enganche voluntario el 24 del mismo mes.
Voy a deciros algo de esta conscripción y de estos señores
honrados. Hízose aquella llamando a las armas a todos los ciudadanos
desde 16 a 40 años, y declarando derogadas todas las excepciones que
establecían las Reales Ordenanzas de 27 de octubre de 1800 para e
reemplazo del ejército. Se declararon útiles los viudos con hijos; los
hijosdalgo de Madrid; los nobles que no tuvieran más excepción que su
nobleza; los tonsurados sin beneficio que estuviesen asignados a
servicio eclesiástico, para cuya determinación se cubrió con un velo e
Concilio de Trento; los que disfrutaban capellanía sin estar ordenados
in sacris (muchos de estos eran los llamados abates); los novicios de
órdenes religiosas; los doctores y licenciados, que no fueran
catedráticos con propiedad; los retirados del servicio, y los quintos que
hubieran servido su tiempo; los hijos únicos de labradores; en una
palabra, no se exceptuaba a rey ni a Roque.
Los honrados eran una milicia sedentaria creada con objeto de
guarnecer las ciudades, para precaver los desórdenes, reprimir los
facinerosos, bandidos, desertores y díscolos, que, perturbando la
pública tranquilidad, intenten saciar su ambición o su codicia.
De modo que en Madrid tuvimos en 23 de noviembre sorteo para e
reemplazo del ejército, y algunos días después alistamiento de
milicianos honrados. Aquella y esta operación se verificaban de diez a
tres en los claustros de la Trinidad Calzada, de los Mostenses, de San
Francisco, y en los de otros conventos situados en el punto más
céntrico de cada cuartel, ante un alcalde de casa y corte o un seño
regidor de Madrid, un oficial militar, un alcalde de barrio y un
escribano. Bastaron, pues, pocos días para que las filas de la
guarnición de Madrid se llenaran con muchos miles de hombres. A la
poca tropa de línea y al regular número de voluntarios ya disciplinados
uniose la muchedumbre de quintos y la caterva de urbanos, gente toda
muy entusiasta; pero casi en general carecían de fusiles, y estaban tan
ignorantes de lo que habían de hacer como la madre que les echó a
mundo.
Sucedió también que los voluntarios antiguos, aquellos que desde
agosto habían paseado presuntuosamente sus fachas uniformadas po
Madrid, miraron con mal ojo a los honrados, los cuales, llamándose así
parecían querer resumir en su instituto toda la honradez española, y
hablaban pestes de los antiguos. Los honrados que no tenían armas
decían que estas debían quitarse a los antiguos que las tenían; juraban
estos entregarlas antes a Napoleón que a los honrados, y en tanto los
quintos recién sorteados, aquellos infelices viudos, nobles, sacristanes
novicios, beneficiados sin beneficio y demás gente antes exceptuada
miraban al cielo, esperando que se les pusiese en la mano alguna cosa
con que matar. En resumen: mucha, muchísima gente de última hora
pocas y malas armas; ningún concierto; falta de quien supiese mandar
aunque fuese un hato de pavos; mucho mover de lenguas y de
piernas; un continuo ir y venir, con la añadidura inseparable de gritos
amenazas y recelos mutuos, y la contera de los gallardetes
escarapelas, banderolas, signos, letreros y emblemas, que tanto
emboban al pueblo de Madrid.
El aspecto de uno de aquellos claustros en que se verificaba e
alistamiento, era digno de ser eternizado por los más diestros pinceles
¡Dichoso yo si con la pluma pudiera dar efímera existencia a uno de
ellos! ¿A cuál? Todos eran igualmente pintorescos; y si alguno contenía
mayor número de curiosidades, era el claustro de la Trinidad Calzada
en la calle de Atocha.
En mitad de la ancha crujía estaba la mesa, donde el Regidor iba
recibiendo los nombres, que asentaba un escribiente en barbudas
cuartillas de papel. En su derredor resonaba tal chillería y alboroto, que
no sé cómo el Sr. de Mañara (que era el Regidor allí presente) podía
aguantarlo; pero inútil era el imponer silencio, porque la multitud de
mujeres aglomeradas a la puerta, no callarían aunque el Espíritu Santo
se lo mandara. Un pobre alguacil había sido destinado a sostener la
debida compostura, y nunca tal hubiera intentado el infeliz instrumento
de la justicia, porque le cogieron y le magullaron, y roto y molido dio
vueltas por el arroyo.
—¿Pero qué buscan ustedes aquí? —exclamó Pujitos abriendo los
brazos en actitud amenazadora—. Fuera mujeres, que no sirven sino
de estorbo. Condenáas, ¿por qué no van a sacar tierra en Los Pozos?
—Ya hamos sacado tierra: ¡lástima que no fuera de tu sepultura!
—¿Pues qué queréis, demonios?
—¿Qué hamos de querer? ¡Fusiles, piojo! ¿Te los han dado a ti y a
tu batallón pa quitar telarañas? Vengan acá pronto, que nosotras
también nos alistamos.
—Afuera, afuera de aquí, canalla.
—Paz, paz —dijo desde el interior del claustro una gruesa y
campanuda voz que al punto reconocí por la del venerable Salmón—
Haya paz, y no me levante ninguna el gallo.
Al punto el apretado grupo de mujeres se dividió en dos, dando
paso a la procerosa figura del mercenario, que avanzó con majestuoso
paso y risueño continente.
—Aquí está el Padrito. ¡Que viva el Padre Salmón! Ven, Pujitos de
demonio, a echarnos afuera.
—Arrastrao —dijo una cogiendo a Pujitos por el cuello y mostrándole
el puño—. ¿Tus muelas han salido a misa esta mañana? ¿Quieres que
salgan a vísperas esta tarde? Pues boquea y verás.
—Déjenlo, dejen en paz a ese pobre hombre —dijo socarronamente
Salmón—, y perdónenle su gran descortesía con tan dignas señoras
que yo prometo que se enmendará. Ya os he dicho varias veces que s
no sois buenas, no contéis para nada con vuestro queridito Padre
Salmón. Vamos a ver, señoras mías, duquesas y princesas, ¿para qué
os agolpáis aquí?
—También nosotras queremos alistarnos.
—Alistaros, ¡oh valientes amazonas! Pero, niñas, ¿no veis que en
vuestras manos mejor sienta el hilo de oro y las sartas de perlas, que
el temido alfanje damasquino? Vaya, idos a rezar, que la muje
honrada, la pierna quebrada y en casa.
—Todos esos son unos calzonazos. Nosotras hemos cargado ya
muchas espuertas de tierra. Ahora llevamos dos cañones a Los Pozos
y queremos que nos los dejen disparar.
—Bueno, bueno, todo se hará. Cada una a su casa, y cuidado con lo
que les tengo prevenido. Tú, Nicolasa, eres una tramposa, que en cada
libra de carne pones dos onzas menos de peso. Tú, Bastiana, te
condenarás por la usura de prestar a dos pesetas por duro a la gente
del Rastro; y tú, Alifonsa, aguardentera de todos los diablos, ten
entendido que tantas docenas de estos verás a la hora de tu muerte
como cortejos has mantenido en vida, y no digo más por no
escandalizar delante del público.
Con estas y otras filípicas iba Salmón despejando la puerta en tales
términos, que pronto quedó practicable; mas no por eso tornose
adentro el popular fraile, sino que siguió adelante, diciendo a cada uno
su palabrita y dando a besar la correa a viejos, mujeres, hombres y
muchachos. Cuando me vio echome los brazos al cuello, saludándome
con mucho afecto.
—¿Vienes a alistarte? —me dijo.
En esto abalanzose hacia nosotros un hombre que besó las manos a
Salmón con fervoroso cariño, y luego le habló así:
—¡Ay, mi Padrito de mi alma! ¡Gracias a Dios que este probe tiene e
refrigerio de encontrarle y verle y hablarle, que es para él de más
gusto que si le dieran todos los reinos del mundo limpios de fronteras
¿Recibió Su Paternidad las siete libras de rapé y el barrilito?
—Si, hijo mío, y gracias se os dan, pues sois el caballero más
cumplidor de juramentos y palabras que conozco.
—Sí: que soy hombre para desairar a un Paternidad tan reverendo
Mande mi frailito por esa boca, que yo le traeré la Inglaterra toda
aunque gaste en pólvora y balas todo mi dinero.
—¿Y la Zainilla?
—¡Está malucha! La otra noche tuvimos junción en casa, y todo
concluyó con un sainetillo de lo que llaman palos, que aquello parecía
una gloria. La probecita niña de mis entrañas está desde esa noche
que no come ni bebe, y manda al cielo unos suspiros que parten e
corazón de bronce de su padre.
—Eres un zopenco, tío Mano —dijo Salmón—. Cuando estuve en tu
casa el día de Difuntos... ¿recuerdas que me diste aquellos puches
que con el aditamento de un cierto aguardiente de Chinchón, estaban
propios para que metiera en ellos las barbas el mismo Emperador de
Sacro Romano Imperio?
—Me acuerdo, sí.
—Pues aquella noche te dije: «Morterillo, ándate con cuidado, que
tu Zaina y el Sr. de Mañara están de mucho paliqueo, y míralos en
aquel rincón con la cabeza inclinada el uno sobre el otro como dos
higos maduros.» ¡Y cómo se le caía la baba a tu hija!
—Verdad es, señor; y ya sé que de ahí viene todo.
—Entonces te dije: «Morterillo, mucho ojo, que el Mañara quiere
enmarañar a tu hija, y vas a perder este bocadito de ángeles que tú
destinabas a un Veinticuatro.» ¿Acerté?
—¿Pues ello?... Yo no quería reñir con Mañara —dijo Mortero
rascándose una oreja—. Verdad que él iba allá todas las noches... pero
mi probecita niña es más inocente que una paloma.
—Apuesto a que el demonio ha metido el rabo en tu casa
Morterillo. Dices que tu hija ni come ni bebe, y da unos suspiros..
¿suspiritos?
—Sí; y en tres días no le he podido sacar palabra de la boca, y a
veces heme puesto a acecharla tras la puerta de su cuarto, y cata a m
niñita diciendo unas palabrotas... pues... así como los cómicos en los
teatros... Y a ratos la veía enjugándose las lágrimas, y a ratos echando
centellas por los ojos... «Dime qué tienes, serafín de tu padre», le he
preguntado algunas veces; pero no me contesta más que un poste
Anoche nos pusimos a rezar el rosario (porque yo no falto jamás amén
a esta devota costumbre, ni en casa ni en campo raso), y ella empezó
con mucha devoción, diciendo los santamarías con un dejo y un
canticio meloso que llegaba al alma; pero de repente, Padrito, empieza
a dar manotadas como una loca, rompe en mil pedazos el rosario
levántase, y con las manos en la cabeza, dando paseos por el cuarto
dice así: «Virgen de la Paloma, no puedo, no puedo.» Luego púsose e
mantón y corrió a la calle, a donde la seguí... ¿Creerá Su Reverencia de
mi alma que fue hasta la casa donde vive ese condenado Regidor
parose en la puerta, y arrimando la cabeza contra una reja, dio a llora
como un chiquillo? Tuve que traerla en brazos a mi casa, y al día
siguiente no pudo ir al cajón porque cayó mala.
—Ya lo veo clarito: es que Mañara la tiene sorbidos los sesos, y no
es la primera, Mortero, no es la primera; pero yo iré por allí, echarele
un sermón a la niña, y veremos si te la curo... Pero calle... ¿no es
aquella que asoma por allí? Sí, es ella misma. Zaina, Zainilla, ven acá.
—Sí, es mi flor temprana, es el lucero de su padre. Llégate aquí
arrastradilla —dijo el tío Mano llamando a su hija—. ¿De dónde vienes?
—De llevar tierra —contestó la Zaina, en cuyo semblante fresco y
animado no se veían señales de aquel hondo pesar y exaltación que
acababa de referir el respetable progenitor—. Ya hemos puesto tres
cañones en la Puerta de Atocha, y están clavadas las estacas y armado
tal ramaje de palitroques, que parece un nacimiento.
—¿Y para qué andas tú en esas faenas, solito de justicia? —Padre
échele Su Reverencia un buen sermón, o dos, si es menester, para que
se quede en casa.
—Tú no tienes buena cara, Zaina —le dijo Salmón—. Tú estás triste
te lo conozco.
—¡Qué buen barruntador tenemos! ¿Y por qué estoy triste?
—Dime, ¿has visto por ahí al Sr. D. Juan de Mañara?
La Zaina se puso pálida y cesó de reír.
—Ya está cogida —exclamó Salmón batiendo palmas—. Esa cara no
miente. Mira, Ignacia, en la huerta de mi convento hay un pajarito que
todas las mañanas viene a mi celda a contarme las picardías de las
muchachas que conozco. ¿Sabes lo que me dijo de ti? Pues me dijo...
—Está más encarnada que un tomate —añadió Mano—; déjela Su
Paternidad por ahora.
—¿Qué dejar? ¡Bueno soy yo!... Conque, niña, ¿ha habido
gatuperio? Mucho cuidado con los galanes que van a casa; mucho ojo
que si me enfado... Fuera pecados mortales, fuera cosas malas, que
entonces no hay lo de Padrito por acá, Padrito por allá, sino que saco
unas disciplinas, y a zurriagazos enderezo yo a mis niñas. Conque ven
acá, loquilla, ¿ese señor de Mañara te ha trastornado el juicio?
—¿A mí? —chilló la Zaina con súbita expresión de despecho, que la
puso más arrogante y más hermosa de lo que realmente era—. ¿A m
ese pelón? Sé que se lustrea diciéndolo por ahí; pero que se aspere un
poquito, que astavía tenga mucho orgullo y no me echo a perros.
—Vamos, no lo niegues.
—¿Yo? Voime al zumo, que no a las cáscaras, y sobre que no me
gustan los usirias estirados, ni los madamos que huelen a bergamota
cuanti más los malinos traidores, gabachones...
—¡El Sr. de Mañara traidor! —exclamó con asombro el mercenario—
¿Cómo hablas así de un caballero tan principal y tan buen patricio, de
ese bendito Regidor, que ahora está allí dentro alistando soldados?
—Traidor, más traidor que Judas —afirmó la Zaina—. ¿Y Su
Reverencia se hace de nuevas? Pues todo el mundo lo dice, y no queda
en Madrid quien no lo sabe.
—De otros lo he oído yo, pero no de Mañara —indicó Mortero.
—Está vendido a los franceses, y todo ese papel que hace, es po
disimular sus maldades —dijo la Zaina—. Pero se la tienen sentenciada
a ese pícaro, arrastrao, endino, criado del tío Copas. ¡Viva Fernando
VII!
—Yo creí que estabas embobada —dijo Salmón—, y ahora veo que
estás loca.
—¡Ay, mi niñita! —dijo el tío Mano—: no hables tales cosas, que
pueden llegar a las orejas del Sr. de Mañara, y ya sabes que ando en
empeños con él para que ponga en libertad a aquellos dos angelitos
seráficos que están en la cárcel de Villa, Agustinillo y el Manco, los
cuales, por diez pellejos de mal vino de Esquivias, están pasando e
Purgatorio en vida, aunque pienso que en la otra Dios les ha de
descontar estas penas.
—¡Me han de oír los sordos! —exclamó la Zaina—, que aquí no
queremos traidores. Acabar con ellos, y Napoleón es muerto.
—Cuidado, muchacha —dijo Salmón—, que palabra y piedra suelta
no tienen vuelta, y palabra en boca es lo mismo que piedra en honda.
—Sea lo que Dios quiera. A mí quien me la hace, me la paga.
—¿Ves cómo todo es el rencorcillo que te ha quedado?
Iba a contestar Ignacia, cuando apareció D. Diego, y luego que
aquella le vio, hízole entrar en el corro, diciéndole:
—Aquí estoy, aquí está su princesa, señor Conde; no me busque con
esos ojazos de pájaro bobo.
—¿También el señor Conde te corteja, arpihuela? —preguntó e
fraile, haciendo una reverencia a D. Diego.
—¡Y que le quiero más que a las niñas de mis ojos! —dijo la maja—
Los zarcillos son chicos, y otra vez tenga más miramiento; que a las
señoras no se las osequia con colgajitos de a cuatro duros; y un novio
tuve yo, que en barras de plata y oro me llevó a casa los tesoros de
Rey.
D. Diego, turbado por la presencia del mercenario, no acertaba a
decir palabra. En cambio el Padrito se encaró con él, y
campanudamente endilgole la siguiente homilia:
—Ya sé que anda el señor Conde en malos pasos, y mis señoras la
Condesa y Marquesa lo saben también. ¿Conque es cortejo de la
Zaina? ¡Optime, superlative! Sr. D. Diego. Y no lo digo porque esta sea
ningún guiñapo, sino porque cada oveja con su pareja. ¿Qué dirá la
señora Doña María Castro de Oro, Condesa de Rumblar, a quien no
conozco sino para servirla; qué dirá cuando sepa los traeres de su hijo?
Y pensar que a un jovenzuelo casquivano se le ha de dar por esposa
aquella flor sin tacha, aquel lucero matutino, que cual oro en paño
guardan donde usía sabe, es pensar en las nubes de antaño. ¡Pues no
faltaba más... un Afán de Ribera metido en tales tapujos! ¿No le da a
usted vergüenza? Y no lo digo porque frecuente la casa de este Sr. D
Mano de Mortero, que es persona honradísima, sino porque mi niño va
también a casa de la Zancuda, donde se juega de lo lindo, y jóvenes
muy acomodados conozco que han dejado allí los hígados.
—Verdad es —dijo Mortero—. Lo que es en mi casa, nadie se deja
nada, como no sea el malhumor, porque a conversaciones honestas, y
a lenguas castas, y a manos quietas, nadie nos gana; que a veces la
casa parece un monasterio de tanto afinamiento y quinta substancia de
la comenencia.
—Pero el Sr. D. Diego no solo frecuenta esas deshonestísimas
regiones —añadió Salmón—, sino que también va a las logias de los
masones infernalis espelunca, donde se pasa la noche entre herejías y
diabluras. ¡Veo que es aprovechado el rapazuelo! ¡Y quería la señora
Marquesa que yo le trajese al buen caminito con sermones y consejos
No está la Magdalena para tafetanes, Sr. D. Diego, y yo primero arrojo
el hábito que llevo, que decir a usía por ahí te pudras, y lléveselo e
diablo con sus bobadas y truhanerías.
Más que una mona corrido, quedose Don Diego con esta filípica, y
de buena gana habría contestado a Salmón, vomitando todas las
abominaciones que acerca de los frailes había aprendido ya, si no le
detuviera la vergüenza y las muchas miradas de enojo que de distintas
partes le observaban. Así es que solo protestando a medias palabras
contra el frailazo pancista, se escurrió bonitamente entre el gentío
llevando consigo a la Zaina y a Mortero, que no quiso dejarle escapa
sin previa entrega de las ofrecidas espuelas de plata.
Quedémonos allí Salmón y yo, y como mi amigo oyera lo de frailazo
pancista, palabras que ya en aquellos días empezaban a menudear en
bocas populares, se enfureció y quiso seguir tras el jovenzuelo para
reprenderle su osadía; mas el agolpamiento de la gente, junto con las
muestras de simpatías que recibió, se lo impidieron.
—Temple Su Paternidad la ira —le dije—, y váyase en buen hora D
Diego.
—Tienes razón —repuso—, que aquila non capit muscas. Su castigo
tendrá en ver que se queda sin novia.
—Pues él está tan firme en casarse —dije— que lo da por hecho, y
añade que llevará adelante lo del matrimonio contra viento y marea.
—¡Oh, qué ilusión! Pues están contentas de él mis señoras la
Condesa y Marquesa. Y por lo que hace a la novia... Acompáñame a la
Merced y te contaré. ¿Hablaste largo con la señora Condesa? ¿Le
dijiste todo lo que sabes de este botarate?
—Un poquito, sí, señor. ¿De modo que no se casará?
—Lo dudo, porque si las personas mayores de la casa no le pueden
ver, lo que es la joven... Anda esta trastornadilla después que se le han
descubierto todos los escondrijos de su almita. Por fin lo dijo todo. Ya
te conté que ni yo con mi gran autoridad y mis chistes y juegos, ni la
Marquesa con su mal genio, ni el Marqués apedreándola a regalos y
obsequios, pudimos hacerle confesar la causa de sus melancolías; pero
al fin, apretada por su prima la señora Condesa que la ama mucho, un
día entre lágrimas y suspiros le confesó todo.
—Y no resultaría nada...
—Nada más sino que todo aquel mal gesto y aquellas tristezas le
venían de amar a un muchachuelo, a un perdidillo, a un cascaciruelas
de esas calles, a quien conoció y tuvo por novio en toda regla, allá
cuando vivía lejos de sus padres. ¡Cosa de niños! Lejos de parecerme
mala, me parece un buen signo de virtud la firmeza de sus
sentimientos, lo mismo en la adversa que en la próspera fortuna. Con
todo, la Marquesa y su hermano rabian, como es natural, viendo que
no pueden desencantar a la niña, pues lo que tiene, más parece
encanto que otra cosa. Y todo se les vuelve decir: «Padre Salmón
¿qué haremos? Padre Salmón ¿qué no haremos?» Yo me voy al cuarto
de la madamita, y después de decirle cuatro gracias y de imitar e
graznido de los cuervos, y el relincho de un caballo, y el rum-rum de
las viejas rezando en la iglesia, con lo cual ella se ríe mucho, le digo
«Pero mi niña de mi corazón, ¿por qué no desecha vueseñoría todo
pensamiento que no sea el de su actual grandeza? ¿Qué cosa puede
apetecer ahora? ¿Le falta algo? ¿No tiene todas las comodidades, todos
los miramientos, todos los mimos que una doncella puede apetecer?»
A lo que me contesta que ella no desea nada, y después se calla
Entonces le tomo las manos, se las acaricio y le digo: «El pajarito de
mi convento me ha contado que amasteis a un jovenzuelo. ¿Por qué no
arrojáis esta idea de la cabeza? ¿No comprende usía que en una tan
principal casa no pueden entrar por las puertas del matrimonio
personas de baja condición? Seguramente que ese zascandil que fue
vuestro novio no se acuerda para nada de mi querida niña.» Y ella a
punto se sonríe, muda de conversación y empieza a hablar de otro
asunto con tan buen tino y tanto talento, que a mí y al Padre Castillo
nos deja atónitos.
—Pues veo que cuando dos tan buenos predicadores no la pueden
quitar con sus buenos sermones el desencanto, encantada estará toda
la vida.
—No, hijo; que se han intentado varios medios para quitarle eso de
la cabeza. La Condesa díjole que el zascandil ese había muerto según
sus averiguaciones, y la Marquesa y su hermano, tomando otro
camino, han concertado hacerla creer que el tal desconocido
jovenzuelo es un pícaro ladroncillo de las calles, un tramposo
estafador, a quien persigue la justicia por sus robos, chuladas y
granujerías.
—¡Vive Dios! —exclamé sin poderme contener—, y que eso es
mentira, y le romperé el alma al que me diga que es cierto.
—¡Cómo, muchacho! —dijo muy absorto el fraile—. ¿Pero a ti qué te
va ni qué te viene en esa cuestión para tomarla tan a pechos?
—Y a todas esas, ella, ¿qué decía?
—Nada. Hasta hoy la verdad es que el ingenioso artificio no ha
hecho gran efecto, y mientras la doncella sin par aparenta no darse po
entendida, la señora Marquesa se incomoda más cada día, y a todas
horas exclama: «Esto no puede seguir así.» Riñe con su sobrina; esta
suele llorar, aunque en ella todo revela más paciencia que dolor, y aqu
de la Condesa, que se pone como un basilisco en cuanto mortifican a
su prima. Tía y sobrina se dicen cuatro cosas; yo las apaciguo, y hasta
el otro día, que sucede lo mismo.
En esto llegamos a la puerta de la Merced, y Salmón, deteniéndose
me dijo:
—¿Quieres subir? Te daré chocolate crudo y una copita.
—Gracias, Padre: estoy rabiando, y no tengo ganas de chocolate n
de copitas.
Y sin más palabras, despedime de aquella lumbrera de la Iglesia
para irme a mi casa.
XIV

Llegó con el 28 de noviembre la noticia de la batalla de Tudela, y


una vez que se consideró deshecho nuestro ejército de Aragón y de
Centro, ya todos vimos el sombrero de Napoleón asomando por la Mala
de Francia. Las fortificaciones avanzaban, y en los días 27, 28 y 29
recuerdo que menudearon bastante las que podremos llama
fortificaciones y armamentos espirituales, que eran las rogativas
rosarios, funciones de desagravios, novenas y otras devociones para
alcanzar de la Divina Providencia, no que apartase los peligros, sino
que enardeciera nuestros ánimos para salir victoriosos. Hubo rosario en
San Ginés, jubileo en los Dominicos de la Pasión, solemnes cultos en e
Carmen Calzado, y, por último, en la iglesia de Nuestra Señora de
Gracia, sita en la Plazuela de la Cebada, se inauguró un novenario que
fue la más popular de las devociones de aquellos días, por predicar all
popularísimos oradores. La gente piadosa, al par que patriota, no tenía
tiempo para acudir a tantas partes, y vacilaba entre la iglesia y la
trinchera. En los sermones había de todo, como es fácil suponer
piedad cristiana y entusiasmo bíblico en algunos púlpitos; garrulería en
otros, con perdón sea dicho de mi respetable amigo el mercenario
calzado a quien ustedes conocen. Los hombres, aunque lo
deseáramos, no teníamos tiempo para frecuentar las iglesias, y
especialmente los armados no dábamos paz a los pies ni a las manos
con el frecuente ejercicio y ensayo de nuestra fuerza. Los soldados, los
voluntarios, los conscriptos, los honrados que tenían armas, nos
confundimos por algunos días en comunes trabajos y preparativos
dando al olvido discordias importunas. Y no estaba el tiempo para
andarse con juegos, porque ya Napoleón se nos venía encima. La
temida sombra veíase por todas partes. Mientras existió la pueri
confianza de que las tropas enviadas a Somosierra estorbarían el paso
del tirano, menos mal: íbamos viviendo, alimentando nuestro espíritu
con risueñas ilusiones, y soñando con ver hechos pedazos el poder de
Bonaparte en la era del Mico.
Pero el día 1.º de diciembre comenzaron a circular desde muy
temprano rumores gravísimos acerca de la derrota del general San
Juan en Somosierra. Echose todo el mundo a la calle en averiguación
de lo ocurrido, y corriendo de boca en boca las nuevas, exageradas po
la ignorancia o la mala fe, bien pronto llegó a decirse que los franceses
estaban en Alcobendas, y hasta alguno aseguró haberlos visto
paseándose en el Campo de Guardias. Desde el famoso 2 de mayo no
había visto a Madrid tan agitado: corrían hombres y mujeres por las
calles, y entonces era el lamentar la ciega confianza, el echar de
menos la actividad y previsión propias de un pueblo realmente decidido
a defenderse. El Gran Capitán y yo habíamos salido desde muy
temprano, él para tomar disposiciones importantes en el Cuerpo de
honrados a que pertenecía, y yo por acudir a mi puesto, o curiosear en
caso de que aún no se tratara de cosa formal.
—Lejos de acoquinarme yo, como estos gallinas —decía el Gran
Capitán—, me animo y me gallardeo y me esponjo al saber que los
tenemos tan cerca. Y a mí no me hablen de que el general San Juan
ha sido derrotado. Para los que conocemos las artimañas y recovecos
del arte de la guerra, esa dispersión de las tropas de San Juan que
parece derrota, no es otra cosa más que un hábil movimiento para
engañar a Napoleón, dejándole pasar el Puerto. Y si no, figúrate si será
bonito ver a lo mejor que, cuando tranquilamente avanzan los
franceses creyéndose seguros, aparecen como llovidas por el flanco
derecho las tropas españolas, y me los cogen ahí sin disparar un tiro
entre Alcobendas y San Agustín.
—Podrá suceder —dije yo sin manifestarle mi incredulidad—; pero
figúrese el Sr. Fernández que no pasa nada de esto, sino que viene
Napoleón sano y entero, y nos pone cerco. ¿Cómo saldremos de este
apuro?
—Admirablemente —repuso—. Podrá suceder que si trae muchas
muchísimas tropas, vamos al decir, un par de milloncitos de hombres
dure el sitio dos o tres años, al cabo de los cuales tendrá que
retirarse... porque pensar que Madrid se ha de rendir, es pensar en lo
excusado. Y si no, pasea tus ojos por esas fortificaciones que en
diferentes partes se han hecho en lo que el diablo se restrega un ojo
espacia tu vista por esos hondos fosos, por esos gruesos parapetos
por esos inexpugnables montones de tierra, y por esas terroríficas
baterías de cañones de a 6; y si la admiración te da tregua a las
reflexiones, comprenderás que es imposible tomar a Madrid, aunque
Napoleón trajera mejor gente que aquella que fue a Portugal con e
señor Marqués de Sarriá.
—Dios le oiga a usted. Por mi parte haré lo que pueda. ¿Y usted
manda, o es mandado?
—Yo mando; que a ello me obligan antiguos amigos, cuya ciega
confianza en mis conocimientos raya en fanatismo. Yo no quería
mandar porque no me gustan papeles; pero he tenido que ceder, y
entre todos hemos formado una compañía que ha recibido orden de
operar en Los Pozos, sitio el más arriesgado, peligroso y temerario de
este gran asedio que nos espera. Casi todos tenemos fusiles, y los que
no, manejarán la lanza.
—¡Lanza para defender murallas! —exclamé sin poder disimular la
risa.
—Sí, hijo: ¿qué entiendes tú de eso? Figúrate que a esos tontos se
les ponga en la cabeza dar un asalto: ¿qué mejor cosa para
impedirlo...? Por cierto que voy a reunir mi gente para ir a ocupar la
posición, no sea que el señor córcego quiera darnos una sorpresa con
su mala fe acostumbrada.
—Ahora dejémonos llevar a la Puerta del Sol con todo ese gentío
que allá va —dije yo—, y parece que ocurre alguna cosa grave, según
gritan.
—Efectivamente; pero esa gritería es de mujeres. Sin duda esas
valerosas matronas piden que se les den armas.
—Bajemos por la calle de la Montera... Por allí sube, si no me
engaño, el Sr. de Santorcaz. Llamémosle: él sabrá lo que ocurre... ¡Eh
Sr. D. Luis!
—¿Qué hay en la Puerta del Sol, que tanto chilla la gente? —
preguntó Fernández cuando el otro se nos acercó.
—Es que el pueblo pide armas y no se las quieren dar —repuso
Santorcaz—. Es una picardía, y todos esos mandrias de la Junta deben
ser arrastrados.
—¡La Junta! ¡Los señores de la Junta Central!
—No hablo de la Central —prosiguió Santorcaz—, que esa, si es
cierto lo que dicen, ha acordado hoy retirarse de Aranjuez, buscando
refugio en Andalucía. Hablo de la Juntilla que se ha formado aquí para
la defensa de Madrid, y que está en permanencia en la casa de
Correos. ¡Aquí hay muchos traidores —añadió en voz alta—, y algunos
han cogido dinero para entregar la plaza a los franceses! ¡Canallas de
traidores! Ahora salimos con que se han acabado las armas y los
cartuchos. ¡Mentira! Yo sé dónde hay armas y cartuchos. ¡Nos están
engañando, nos van a vender!
Diciendo esto, se apartó de nosotros, después de lo cual seguimos
hacia abajo, y al llegar a la Puerta del Sol vimos que estaba de bote en
bote, llena de gente. Aquel hueco abierto en el apelmazado caserío de
Madrid, es el corazón de la antigua villa, y a él afluye con precipitada
congestión la sangre toda en sus ratos de cólera, de alegría o de
miedo. La Puerta del Sol latía con furia. Hombres y mujeres hablaban a
la vez, y a sus voces se unían actitudes y gestos amenazadores. La
masa más inquieta, más hirviente, más loca y alborotadora estaba a
pie de la casa de Correos.
—Busquemos algún conocido que nos informe de lo que aquí ha
pasado —dije, metiéndome con el Gran Capitán por lo menos apretado
del gentío.
—Astavía no ha pasado nada —dijo un caballero que, envuelto en
una capa, se nos apareció, y en quien al punto reconocí al señor de
Majoma—. Astora nada; pero... ya verán.
—¿Qué pide esa gente?
—¿Qué ha de pedir? Armas y cartuchos.
—Ya están repartidos todos los que hay.
—¡A mí con esas! —exclamó el apreciable sujeto—. Ya estamos de
traidores hasta el gañote. ¡Pillos lairones! Si no les espachamos, nos
van a entregar a los franceses. ¡Perros gabachos! Les conozco bien, y
se la tengo sentenciada, sí, señor; y el que diga que no son traidores
que se vea conmigo, porque yo soy más español que Santiago y más
patriota que Fernando VII.
—Pero desde hace tiempo se sabe que la plaza tenía muy pocas
armas; y en cuanto a los cartuchos, todos los que había y los
fabricados en esta semana, se han repartido ya. El Sr. de Mañara ha
estado ocho días ocupado en dirigir la fábrica de cartuchos, y aye
tarde repartió muchos miles en el Ave María y en la Comadre.
—¡No me lo nombres! —exclamó Majoma, afectando una
indignación que más tenía de cómica que de trágica—. Ahí tienes a
traidor más que Judas, al gabachón más que Copas... Gabriel, ¿eres tú
traidor también? ¿Estás vendido a los franceses, como ese regidorcillo
hambrón? Dime que sí y verás... miá tú... aquí mismo te pongo en
pipitoria con esto que traigo debajo de la capa.
—¿La navajita? Guarda tu coraje para mejor ocasión, Majomilla —le
respondí—. Me parece que estás borracho.
—¿Borracho yo? Si no lo he probao, chico... Esta mañana me
convidó el Sr. de Santorcaz a beber unas copas, y... por esta, que no
bebí más que dos azumbres... ¿Qué hacer sin la calorcilla en e
estómago?... Pero di, ¿eres tú traidor? Di que no, porque te rajo..
pues yo (y se daba fuertes golpes en el pecho) tengo un corazón como
un bronce, y soy más valiente que el Ciz, y nadie me tosa, si no quiere
ver quién es Majoma.
Y sin oír más, nos apartamos del insigne varón.
—Esto no me gusta —dijo Fernández—, y me parece que si la alta
empresa que entre manos traemos no sale tan bien como debiera
consistirá en esta inmunda canalla motinesca, díscola y bullanguera
que en circunstancias tan críticas se vuelve contra sus jefes. Gabriel
de buena gana te digo que si nuestro D. Tomás de Morla nos mandase
cerrar contra esta gentuza, la meteríamos en un puño prontamente. Y
has de saber que estos perdularios chillones, más sirven de estorbo
que de ayuda en la defensa, y verás cómo son ellos los primeros que
se rinden.
Miramos al balcón de la casa de Correos, y vimos que en él aparecía
un hombre alto, moreno, hosco, vestido de uniforme; le vimos acciona
hablando a la multitud; pero no pudimos oír sus palabras, porque la
femenil chillería de abajo habría impedido oír tiros de cañón, que no
digo humanas voces. Después aquel militar, el cual no era otro que D
Tomás de Morla, encogíase de hombros y cruzaba los brazos. Este
lenguaje le entendimos mejor, y evidentemente quería decir: «No hay
nada de lo que me pedís: se acabaron las armas y los cartuchos.»
Pero la multitud se enfurecía con la negativa y le silbaba, pidiendo
con su omnipotente antojo y volubilidad que saliese Castelar, personaje
más conocido que Morla. Salió el Marqués de Castelar, habló sin pode
apaciguar a sus admiradores, y repitiose el encogimiento de hombros y
el gesto desconsolador. Aquí de los silbidos, de los gritos, de las
amenazas; poco después el pueblo empezó a arremolinarse y a
culebrear como dragón de mil colas que se dispone a emprende
movimiento, y vimos que muchos se desparramaban por la calle Mayor
y que otros subían hacia Santa Cruz.
—Vamos allá a ver en qué para esto —dijo D. Santiago, apoyándose
en mi brazo y siguiendo el general torrente—. Estos majaderos primero
dejarán de existir que de hacer alguna atrocidad. ¿Por qué piden
armas, si con las que hay repartidas basta y sobra? ¿A qué piden
cartuchos, si no hay cartucho que mate más franceses que e
entusiasmo español, ni mejor pólvora que nuestra indignación?
—Todo eso es verdad, Sr. D. Santiago —repuse—; pero no habría
sido malo que la Junta Central o el Consejo, en vez de ocuparse en
discutir sus rivalidades, hubiera depositado en Madrid unos cuantos
barriles de indignación, de esa que se hace con salitre, carbón y
azufre, que la otra sin esta de poco sirve. Pero aquí no ha habido
previsión, ni iniciativa, ni actividad, ni eminentes cabezas que dirijan
sino que la defensa ha quedado a merced de la voluntad, de la
invención y del buen sentido del pueblo, Sr. D. Santiago; y no llamo
pueblo a esa miserable turba gritona que de nada sirve, sino a todos
nosotros, altos y bajos, grandes y chicos... ¿Pero quién es aquel que
corre? Es el insigne patriota a quien llaman Pujitos. ¡Eh... Sr. de
Pujitos, lléguese acá y díganos lo que ocurre!
—Ahora va la gente hacia la calle de la Magdalena —contestó—
donde vive el Regidor Mañara. Esta mañana estuvimos allí: salió a
balcón y nos dijo que los miles de cartuchos que ha fabricado los
entregó ya, y que no hay más pólvora. ¿Van ustedes hacia el Avapiés?
Por allá hay gran alboroto, y dicen que Mañara es un traidor, y que acá
y allá.
—¿Y usted, qué piensa de Mañara?
—Mañara es hombre cabal, porque lo digo yo —afirmó Pujitos en
tono misterioso—. Los traidores son otros y andan por allí revolviendo
la gente y armando estas tramoyas. Gabriel, acuérdate de lo dicho. Los
que más chillan son los piores; pero yo ando con mucho ojo, porque
así me lo ha mandado el jefe, y como les eche la mano encima, verán
quién es Pujitos.
Siguió a toda prisa hacia la Puerta del Sol, y nosotros, atravesando
la Plaza Mayor, entramos en la calle de Toledo, arteria de toda la
circulación manolesca, centro de las chulerías, metrópoli de las gracias
bazar de las bullangas, cátedra de picardías y teatro de todas las
barrabasadas madrileñas.
Pasando luego a la calle de Embajadores, oímos de nuevo que hacia
el Avapiés había gran marejada, por lo cual, atravesando por los
Abades hacia el Mesón de Paredes, nos fuimos a presenciar el tumulto
que no era flojo, según el rumor de voces que desde lejos se oía. En
efecto, habíase armado un zipizape que déjelo usted estar.
De manos a boca tropezamos con el tío Mano de Mortero, que se
llegó a nosotros diciendo:
—¡Cómo nos engañan, Gabriel! ¡Quién lo había de decir en un
caballero tan bueno como el Sr. de Mañara!
—¿Pero es traidor el Sr. de Mañara? Vamos, tío Mano. ¿Usted
también? Usted que es una persona de tantísimo talento...
—Es verdad, niño de mi alma; ¿pero qué quieres tú? Lo dicen po
ahí. A mí no me consta; pero al son que me tocan bailo. Pues dicen
que hay traidores, ¡abajo los traidores!
—¿Y qué dicen de Mañara?
—Que tiene arreglado con los franceses el entregarles la Puerta de
Toledo.
—¿Y cómo lo saben?
—¡Qué sé yo! Pero cuando el río suena agua lleva. Yo no he de se
menos que los demás, y pues hay traidores, ¡abajo los traidores!
—¿Y la Zaina?
—¿Pues no la oyes? ¡Si es la que más grita en medio de la plaza
¡Santa Virgen! ¡Y no está poco furiosa esa leoncilla! Ahora se ha vuelto
la patriota más patriota de todo Madrid. ¡Ay, mi Dios, qué nacionala
tengo a mi niña!
De rato en rato aumentaba el gentío en la Plazuela del Avapiés, y
los hombres de mala facha, unidos a las mujeres más desenvueltas de
los cercanos barrios, menudeaban sus gritos y vociferaciones de ta
modo, que ninguna persona honrada podría ante tal espectáculo
permanecer tranquila.
—Acerquémonos —me dijo Fernández—. Yo con todo mi corazón te
aseguro que si Su Majestad, y en su Real nombre la Sala de Alcaldes
de casa y corte, me mandase despejar este sitio, lo haría con dos
lanzazos o sablazos, que para el caso lo mismo daría.
—Guárdese usted de decir en alta voz tales cosas, y acerquémonos
a aquel grupito de damas.
La Primorosa salió del grupo.
—¿Eh... Primorosa, qué traes por aquí? —le pregunté.
—¡Cachiporros! —exclamó la arpía alzando los brazos, cerrando los
puños, y dirigiéndose a algunos hombres que la rodeaban—. ¿Pa qué
estáis aquí? ¿No vos quieren dar cartuchos? Pues dir ca el Regidor y
sacárselos de las asauras. ¡Él los tiene escondíos! Él los tiene enterraos
en paquetes pa dárselos a los franceses.
Entonces la Zaina, abriéndose paso, presentose en el centro de
corrillo formado en torno a la Primorosa. Estaba la hermosa verdulera
amoratada y ronca, con los ojos encendidos, las ropas hechas pedazos
y con tan fiera expresión retratada en su semblante y en toda su
persona, que causaba espanto. En el momento de presentarse, traía
un cartucho entre los dedos, y lo mordía, y derramaba en la palma de
la mano lo que debía ser pólvora y resultaba ser arena.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookname.com

You might also like